arelle-release 2.17.1__py3-none-any.whl → 2.37.71__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.
Files changed (893) hide show
  1. arelle/Aspect.py +6 -3
  2. arelle/BetaFeatures.py +3 -0
  3. arelle/Cntlr.py +117 -413
  4. arelle/CntlrCmdLine.py +364 -227
  5. arelle/CntlrQuickBooks.py +4 -2
  6. arelle/CntlrWebMain.py +179 -119
  7. arelle/CntlrWinMain.py +342 -124
  8. arelle/DialogAbout.py +1 -1
  9. arelle/DialogArcroleGroup.py +1 -1
  10. arelle/DialogFind.py +1 -1
  11. arelle/DialogFormulaParameters.py +2 -2
  12. arelle/DialogLanguage.py +45 -36
  13. arelle/DialogNewFactItem.py +1 -1
  14. arelle/DialogOpenArchive.py +30 -34
  15. arelle/DialogPackageManager.py +11 -8
  16. arelle/DialogPluginManager.py +43 -89
  17. arelle/DialogRssWatch.py +2 -2
  18. arelle/DialogURL.py +1 -1
  19. arelle/DialogUserPassword.py +1 -1
  20. arelle/DisclosureSystem.py +69 -1
  21. arelle/ErrorManager.py +321 -0
  22. arelle/FileSource.py +201 -99
  23. arelle/FunctionFn.py +44 -5
  24. arelle/FunctionIxt.py +16 -13
  25. arelle/FunctionUtil.py +1 -1
  26. arelle/FunctionXfi.py +68 -24
  27. arelle/FunctionXs.py +1 -1
  28. arelle/HtmlUtil.py +5 -4
  29. arelle/LeiUtil.py +63 -43
  30. arelle/LinkbaseType.py +94 -0
  31. arelle/LocalViewer.py +8 -2
  32. arelle/Locale.py +239 -79
  33. arelle/ModelDocument.py +180 -48
  34. arelle/ModelDtsObject.py +32 -27
  35. arelle/ModelFormulaObject.py +14 -6
  36. arelle/ModelInstanceObject.py +43 -14
  37. arelle/ModelManager.py +6 -1
  38. arelle/ModelObject.py +12 -8
  39. arelle/ModelObjectFactory.py +18 -2
  40. arelle/ModelRelationshipSet.py +46 -3
  41. arelle/ModelRenderingObject.py +899 -951
  42. arelle/ModelRssItem.py +2 -4
  43. arelle/ModelTestcaseObject.py +41 -4
  44. arelle/ModelValue.py +42 -14
  45. arelle/ModelVersReport.py +1 -1
  46. arelle/ModelXbrl.py +133 -273
  47. arelle/PackageManager.py +202 -176
  48. arelle/PluginManager.py +551 -239
  49. arelle/PluginUtils.py +54 -0
  50. arelle/PrototypeInstanceObject.py +53 -12
  51. arelle/PythonUtil.py +166 -25
  52. arelle/RuntimeOptions.py +32 -18
  53. arelle/SocketUtils.py +3 -0
  54. arelle/SystemInfo.py +1 -1
  55. arelle/TkTableWrapper.py +33 -5
  56. arelle/UITkTable.py +27 -21
  57. arelle/Updater.py +7 -3
  58. arelle/UrlUtil.py +6 -2
  59. arelle/Validate.py +596 -402
  60. arelle/ValidateDuplicateFacts.py +584 -0
  61. arelle/ValidateFileSource.py +38 -0
  62. arelle/ValidateFilingText.py +46 -29
  63. arelle/ValidateInfoset.py +104 -32
  64. arelle/ValidateUtr.py +31 -4
  65. arelle/ValidateXbrl.py +144 -120
  66. arelle/ValidateXbrlCalcs.py +51 -66
  67. arelle/ValidateXbrlDTS.py +98 -29
  68. arelle/Version.py +2 -7
  69. arelle/ViewFile.py +2 -0
  70. arelle/ViewFileDTS.py +7 -2
  71. arelle/ViewFileFactList.py +1 -1
  72. arelle/ViewFileFactTable.py +4 -4
  73. arelle/ViewFileRelationshipSet.py +36 -19
  74. arelle/ViewFileRenderedGrid.py +164 -753
  75. arelle/ViewFileRenderedLayout.py +174 -0
  76. arelle/ViewFileRenderedStructure.py +108 -0
  77. arelle/ViewWinDTS.py +4 -1
  78. arelle/ViewWinFactList.py +1 -1
  79. arelle/ViewWinFactTable.py +1 -1
  80. arelle/ViewWinRelationshipSet.py +14 -8
  81. arelle/ViewWinRenderedGrid.py +397 -287
  82. arelle/ViewWinRssFeed.py +4 -0
  83. arelle/ViewWinTree.py +15 -9
  84. arelle/ViewWinXml.py +1 -1
  85. arelle/WebCache.py +510 -272
  86. arelle/XbrlConst.py +202 -196
  87. arelle/XbrlUtil.py +2 -1
  88. arelle/XhtmlValidate.py +9 -23
  89. arelle/XmlUtil.py +24 -19
  90. arelle/XmlValidate.py +95 -67
  91. arelle/XmlValidateParticles.py +4 -4
  92. arelle/_version.py +33 -3
  93. arelle/api/Session.py +183 -0
  94. arelle/config/creationSoftwareNames.json +24 -10
  95. arelle/config/disclosuresystems.xml +1 -1
  96. arelle/config/disclosuresystems.xsd +3 -0
  97. arelle/config/sbr-text-formatting.xsd +737 -0
  98. arelle/conformance/CSVTestcaseLoader.py +102 -0
  99. arelle/formula/FactAspectsCache.py +10 -4
  100. arelle/formula/ValidateFormula.py +82 -194
  101. arelle/formula/XPathContext.py +42 -28
  102. arelle/formula/XPathParser.py +15 -9
  103. arelle/locale/ar_EG/LC_MESSAGES/ar_EG.po +3 -4
  104. arelle/locale/messages.pot +1 -2
  105. arelle/locale/ru/LC_MESSAGES/ru.po +2 -2
  106. arelle/logging/formatters/LogFormatter.py +47 -0
  107. arelle/logging/handlers/LogHandlerWithXml.py +94 -0
  108. arelle/logging/handlers/LogToBufferHandler.py +20 -0
  109. arelle/logging/handlers/LogToPrintHandler.py +41 -0
  110. arelle/logging/handlers/LogToXmlHandler.py +244 -0
  111. arelle/logging/handlers/StructuredMessageLogHandler.py +74 -0
  112. arelle/model/CommentBase.py +3 -0
  113. arelle/model/ElementBase.py +3 -0
  114. arelle/model/PIBase.py +3 -0
  115. arelle/model/__init__.py +3 -0
  116. arelle/oim/Load.py +2869 -0
  117. arelle/oim/Validate.py +155 -0
  118. arelle/oim/xml/Save.py +21 -0
  119. arelle/packages/PackageConst.py +7 -0
  120. arelle/packages/PackageType.py +13 -0
  121. arelle/packages/PackageUtils.py +22 -0
  122. arelle/packages/PackageValidation.py +200 -0
  123. arelle/packages/report/DetectReportPackage.py +13 -0
  124. arelle/packages/report/ReportPackage.py +265 -0
  125. arelle/packages/report/ReportPackageConst.py +79 -0
  126. arelle/packages/report/ReportPackageValidator.py +207 -0
  127. arelle/plugin/EdgarRendererAllReports.py +12 -12
  128. arelle/plugin/OimTaxonomy/ModelValueMore.py +15 -0
  129. arelle/plugin/OimTaxonomy/ValidateDTS.py +484 -0
  130. arelle/plugin/OimTaxonomy/ViewXbrlTxmyObj.py +239 -0
  131. arelle/plugin/OimTaxonomy/XbrlAbstract.py +16 -0
  132. arelle/plugin/OimTaxonomy/XbrlConcept.py +68 -0
  133. arelle/plugin/OimTaxonomy/XbrlConst.py +261 -0
  134. arelle/plugin/OimTaxonomy/XbrlCube.py +91 -0
  135. arelle/plugin/OimTaxonomy/XbrlDimension.py +38 -0
  136. arelle/plugin/OimTaxonomy/XbrlDts.py +152 -0
  137. arelle/plugin/OimTaxonomy/XbrlEntity.py +16 -0
  138. arelle/plugin/OimTaxonomy/XbrlGroup.py +22 -0
  139. arelle/plugin/OimTaxonomy/XbrlImportedTaxonomy.py +22 -0
  140. arelle/plugin/OimTaxonomy/XbrlLabel.py +31 -0
  141. arelle/plugin/OimTaxonomy/XbrlNetwork.py +100 -0
  142. arelle/plugin/OimTaxonomy/XbrlProperty.py +28 -0
  143. arelle/plugin/OimTaxonomy/XbrlReference.py +33 -0
  144. arelle/plugin/OimTaxonomy/XbrlReport.py +24 -0
  145. arelle/plugin/OimTaxonomy/XbrlTableTemplate.py +35 -0
  146. arelle/plugin/OimTaxonomy/XbrlTaxonomy.py +93 -0
  147. arelle/plugin/OimTaxonomy/XbrlTaxonomyObject.py +154 -0
  148. arelle/plugin/OimTaxonomy/XbrlTransform.py +17 -0
  149. arelle/plugin/OimTaxonomy/XbrlTypes.py +23 -0
  150. arelle/plugin/OimTaxonomy/XbrlUnit.py +17 -0
  151. arelle/plugin/OimTaxonomy/__init__.py +1037 -0
  152. arelle/plugin/OimTaxonomy/resources/iso4217.json +4479 -0
  153. arelle/plugin/OimTaxonomy/resources/oim-taxonomy-schema.json +935 -0
  154. arelle/plugin/OimTaxonomy/resources/ref.json +333 -0
  155. arelle/plugin/OimTaxonomy/resources/transform-types.json +2481 -0
  156. arelle/plugin/OimTaxonomy/resources/types.json +727 -0
  157. arelle/plugin/OimTaxonomy/resources/utr.json +3046 -0
  158. arelle/plugin/OimTaxonomy/resources/xbrlSpec.json +1082 -0
  159. arelle/plugin/formulaLoader.py +3 -3
  160. arelle/plugin/formulaSaver.py +4 -4
  161. arelle/plugin/inlineXbrlDocumentSet.py +331 -102
  162. arelle/plugin/internet/proxyNTLM/HTTPNtlmAuthHandler.py +1 -1
  163. arelle/plugin/loadFromExcel.py +13 -10
  164. arelle/plugin/loadFromOIM.py +16 -3096
  165. arelle/plugin/logging/saveMessages.py +1 -1
  166. arelle/plugin/saveHtmlEBAtables.py +293 -213
  167. arelle/plugin/saveLoadableOIM.py +652 -361
  168. arelle/plugin/saveOIMTaxonomy.py +311 -0
  169. arelle/plugin/streamingExtensions.py +1 -1
  170. arelle/plugin/systemInfo.py +46 -0
  171. arelle/plugin/transforms/tester.py +4 -4
  172. arelle/plugin/validate/CIPC/Const.py +18 -0
  173. arelle/plugin/validate/CIPC/__init__.py +34 -13
  174. arelle/plugin/validate/DBA/DisclosureSystems.py +12 -0
  175. arelle/plugin/validate/DBA/PluginValidationDataExtension.py +165 -0
  176. arelle/plugin/validate/DBA/ValidationPluginExtension.py +545 -0
  177. arelle/plugin/validate/DBA/__init__.py +49 -0
  178. arelle/plugin/validate/DBA/resources/config.xml +21 -0
  179. arelle/plugin/validate/DBA/rules/__init__.py +323 -0
  180. arelle/plugin/validate/DBA/rules/fr.py +1377 -0
  181. arelle/plugin/validate/DBA/rules/tc.py +45 -0
  182. arelle/plugin/validate/DBA/rules/th.py +172 -0
  183. arelle/plugin/validate/DBA/rules/tm.py +351 -0
  184. arelle/plugin/validate/DBA/rules/tr.py +373 -0
  185. arelle/plugin/validate/EBA/__init__.py +11 -12
  186. arelle/plugin/validate/EDINET/Constants.py +208 -0
  187. arelle/plugin/validate/EDINET/ContextRequirement.py +58 -0
  188. arelle/plugin/validate/EDINET/ControllerPluginData.py +298 -0
  189. arelle/plugin/validate/EDINET/CoverItemRequirements.py +42 -0
  190. arelle/plugin/validate/EDINET/DeiRequirements.py +118 -0
  191. arelle/plugin/validate/EDINET/DisclosureSystems.py +1 -0
  192. arelle/plugin/validate/EDINET/FilingFormat.py +275 -0
  193. arelle/plugin/validate/EDINET/FormType.py +134 -0
  194. arelle/plugin/validate/EDINET/ManifestInstance.py +236 -0
  195. arelle/plugin/validate/EDINET/PluginValidationDataExtension.py +640 -0
  196. arelle/plugin/validate/EDINET/ReportFolderType.py +162 -0
  197. arelle/plugin/validate/EDINET/Statement.py +139 -0
  198. arelle/plugin/validate/EDINET/TableOfContentsBuilder.py +493 -0
  199. arelle/plugin/validate/EDINET/UploadContents.py +48 -0
  200. arelle/plugin/validate/EDINET/ValidationPluginExtension.py +64 -0
  201. arelle/plugin/validate/EDINET/__init__.py +109 -0
  202. arelle/plugin/validate/EDINET/resources/config.xml +22 -0
  203. arelle/plugin/validate/EDINET/resources/cover-item-requirements.json +793 -0
  204. arelle/plugin/validate/EDINET/resources/dei-requirements.csv +27 -0
  205. arelle/plugin/validate/EDINET/resources/edinet-taxonomies.xml +62 -0
  206. arelle/plugin/validate/EDINET/rules/contexts.py +547 -0
  207. arelle/plugin/validate/EDINET/rules/edinet.py +1991 -0
  208. arelle/plugin/validate/EDINET/rules/frta.py +301 -0
  209. arelle/plugin/validate/EDINET/rules/gfm.py +2394 -0
  210. arelle/plugin/validate/EDINET/rules/manifests.py +88 -0
  211. arelle/plugin/validate/EDINET/rules/upload.py +1370 -0
  212. arelle/plugin/validate/ESEF/Const.py +16 -75
  213. arelle/plugin/validate/ESEF/Dimensions.py +2 -2
  214. arelle/plugin/validate/ESEF/ESEF_2021/DTS.py +6 -1
  215. arelle/plugin/validate/ESEF/ESEF_2021/Image.py +7 -4
  216. arelle/plugin/validate/ESEF/ESEF_2021/ValidateXbrlFinally.py +80 -57
  217. arelle/plugin/validate/ESEF/ESEF_Current/DTS.py +60 -22
  218. arelle/plugin/validate/ESEF/ESEF_Current/ValidateXbrlFinally.py +272 -133
  219. arelle/plugin/validate/ESEF/Util.py +5 -19
  220. arelle/plugin/validate/ESEF/__init__.py +61 -46
  221. arelle/plugin/validate/ESEF/resources/authority-validations.json +120 -10
  222. arelle/plugin/validate/ESEF/resources/config.xml +44 -3
  223. arelle/plugin/validate/FERC/__init__.py +31 -18
  224. arelle/plugin/validate/FERC/config.xml +18 -18
  225. arelle/plugin/validate/NL/DisclosureSystems.py +19 -3
  226. arelle/plugin/validate/NL/PluginValidationDataExtension.py +710 -7
  227. arelle/plugin/validate/NL/ValidationPluginExtension.py +117 -12
  228. arelle/plugin/validate/NL/__init__.py +21 -10
  229. arelle/plugin/validate/NL/resources/config.xml +27 -6
  230. arelle/plugin/validate/NL/rules/br_kvk.py +81 -21
  231. arelle/plugin/validate/NL/rules/fg_nl.py +292 -0
  232. arelle/plugin/validate/NL/rules/fr_kvk.py +60 -7
  233. arelle/plugin/validate/NL/rules/fr_nl.py +705 -24
  234. arelle/plugin/validate/NL/rules/nl_kvk.py +2182 -0
  235. arelle/plugin/validate/ROS/DisclosureSystems.py +1 -0
  236. arelle/plugin/validate/ROS/PluginValidationDataExtension.py +109 -0
  237. arelle/plugin/validate/ROS/ValidationPluginExtension.py +27 -0
  238. arelle/plugin/validate/ROS/__init__.py +28 -341
  239. arelle/plugin/validate/ROS/resources/config.xml +20 -0
  240. arelle/plugin/validate/ROS/rules/__init__.py +56 -0
  241. arelle/plugin/validate/ROS/rules/ros.py +393 -0
  242. arelle/plugin/validate/UK/ValidateUK.py +1372 -0
  243. arelle/plugin/validate/{HMRC → UK}/__init__.py +195 -189
  244. arelle/plugin/validate/{HMRC → UK}/config.xml +1 -1
  245. arelle/plugin/xbrlDB/SqlDb.py +1 -1
  246. arelle/plugin/xbrlDB/XbrlOpenSqlDB.py +5 -5
  247. arelle/plugin/xbrlDB/XbrlPublicPostgresDB.py +1 -1
  248. arelle/plugin/xbrlDB/XbrlSemanticJsonDB.py +1 -1
  249. arelle/plugin/xbrlDB/XbrlSemanticRdfDB.py +1 -1
  250. arelle/plugin/xbrlDB/__init__.py +4 -1
  251. arelle/{RenderingEvaluator.py → rendering/RenderingEvaluator.py} +120 -99
  252. arelle/rendering/RenderingLayout.py +476 -0
  253. arelle/rendering/RenderingResolution.py +814 -0
  254. arelle/resources/cache/http/www.eurofiling.info/eu/fr/xbrl/ext/filing-indicators.xsd +20 -0
  255. arelle/resources/cache/http/www.w3.org/2001/03/xml.xsd +117 -0
  256. arelle/resources/cache/http/www.w3.org/2001/XMLSchema.xsd +2534 -0
  257. arelle/resources/cache/http/www.w3.org/2001/xml.xsd +287 -0
  258. arelle/resources/cache/http/www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd +779 -0
  259. arelle/resources/cache/http/www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd +486 -0
  260. arelle/resources/cache/http/www.xbrl.org/2003/xl-2003-12-31.xsd +251 -0
  261. arelle/resources/cache/http/www.xbrl.org/2003/xlink-2003-12-31.xsd +121 -0
  262. arelle/resources/cache/http/www.xbrl.org/2004/ref-2004-08-10.xsd +129 -0
  263. arelle/resources/cache/http/www.xbrl.org/2005/xbrldt-2005.xsd +53 -0
  264. arelle/resources/cache/http/www.xbrl.org/2006/ref-2006-02-27.xsd +120 -0
  265. arelle/resources/cache/http/www.xbrl.org/2006/xbrldi-2006.xsd +41 -0
  266. arelle/resources/cache/http/www.xbrl.org/2008/boolean-filter.xsd +51 -0
  267. arelle/resources/cache/http/www.xbrl.org/2008/concept-filter.xsd +127 -0
  268. arelle/resources/cache/http/www.xbrl.org/2008/conformance.xsd +116 -0
  269. arelle/resources/cache/http/www.xbrl.org/2008/conformanceFunction.xsd +51 -0
  270. arelle/resources/cache/http/www.xbrl.org/2008/consistency-assertion.xsd +66 -0
  271. arelle/resources/cache/http/www.xbrl.org/2008/dimension-filter.xsd +86 -0
  272. arelle/resources/cache/http/www.xbrl.org/2008/entity-filter.xsd +92 -0
  273. arelle/resources/cache/http/www.xbrl.org/2008/existence-assertion.xsd +44 -0
  274. arelle/resources/cache/http/www.xbrl.org/2008/formula.xsd +261 -0
  275. arelle/resources/cache/http/www.xbrl.org/2008/function.xsd +90 -0
  276. arelle/resources/cache/http/www.xbrl.org/2008/general-filter.xsd +38 -0
  277. arelle/resources/cache/http/www.xbrl.org/2008/generic-label.xsd +80 -0
  278. arelle/resources/cache/http/www.xbrl.org/2008/generic-link.xsd +81 -0
  279. arelle/resources/cache/http/www.xbrl.org/2008/generic-reference.xsd +63 -0
  280. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xbrl/xbrl-instance-2003-12-31-ixmod.xsd +788 -0
  281. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xbrl/xbrl-linkbase-2003-12-31-ixmod.xsd +488 -0
  282. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xbrl/xl-2003-12-31.xsd +248 -0
  283. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xbrl/xlink-2003-12-31.xsd +117 -0
  284. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xframes-1.xsd +166 -0
  285. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-applet-1.xsd +66 -0
  286. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-attribs-1.xsd +72 -0
  287. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-base-1.xsd +36 -0
  288. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-basic-form-1.xsd +195 -0
  289. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-basic-table-1.xsd +169 -0
  290. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-basic10-model-1.xsd +376 -0
  291. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-basic10-module-redefines-1.xsd +61 -0
  292. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-basic10-modules-1.xsd +259 -0
  293. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-basic10.xsd +98 -0
  294. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-bdo-1.xsd +78 -0
  295. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-blkphras-1.xsd +161 -0
  296. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-blkpres-1.xsd +37 -0
  297. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-blkstruct-1.xsd +49 -0
  298. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-charent-1.xsd +38 -0
  299. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-copyright-1.xsd +29 -0
  300. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-csismap-1.xsd +96 -0
  301. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-datatypes-1.xsd +128 -0
  302. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-edit-1.xsd +39 -0
  303. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-events-1.xsd +130 -0
  304. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-form-1.xsd +326 -0
  305. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-frames-1.xsd +113 -0
  306. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-framework-1.xsd +66 -0
  307. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-hypertext-1.xsd +47 -0
  308. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-iframe-1.xsd +68 -0
  309. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-image-1.xsd +45 -0
  310. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-inlphras-1.xsd +163 -0
  311. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-inlpres-1.xsd +39 -0
  312. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-inlstruct-1.xsd +50 -0
  313. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-inlstyle-1.xsd +27 -0
  314. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-legacy-1.xsd +97 -0
  315. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-link-1.xsd +45 -0
  316. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-list-1.xsd +99 -0
  317. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-meta-1.xsd +42 -0
  318. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-misc-1.xsd +441 -0
  319. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-nameident-1.xsd +63 -0
  320. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-notations-1.xsd +69 -0
  321. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-object-1.xsd +76 -0
  322. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-param-1.xsd +51 -0
  323. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-pres-1.xsd +51 -0
  324. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-ruby-1.xsd +171 -0
  325. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-ruby-basic-1.xsd +89 -0
  326. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-script-1.xsd +70 -0
  327. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-ssismap-1.xsd +43 -0
  328. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-struct-1.xsd +112 -0
  329. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-style-1.xsd +52 -0
  330. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-table-1.xsd +272 -0
  331. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-target-1.xsd +53 -0
  332. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml-text-1.xsd +67 -0
  333. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml11-model-1.xsd +677 -0
  334. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml11-module-redefines-1.xsd +335 -0
  335. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml11-modules-1.xsd +528 -0
  336. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml11.xsd +104 -0
  337. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xhtml2.xsd +21 -0
  338. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xml-events-1.xsd +73 -0
  339. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xml-events-2.xsd +74 -0
  340. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xml-events-attribs-1.xsd +73 -0
  341. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xml-events-attribs-2.xsd +75 -0
  342. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xml-events-copyright-1.xsd +34 -0
  343. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xml-events-copyright-2.xsd +34 -0
  344. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml/xml-handlers-2.xsd +98 -0
  345. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml-inlinexbrl-1_0-definitions.xsd +225 -0
  346. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml-inlinexbrl-1_0-model.xsd +681 -0
  347. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml-inlinexbrl-1_0-modules.xsd +535 -0
  348. arelle/resources/cache/http/www.xbrl.org/2008/inlinexbrl/xhtml-inlinexbrl-1_0.xsd +40 -0
  349. arelle/resources/cache/http/www.xbrl.org/2008/match-filter.xsd +94 -0
  350. arelle/resources/cache/http/www.xbrl.org/2008/period-filter.xsd +86 -0
  351. arelle/resources/cache/http/www.xbrl.org/2008/registry.xsd +145 -0
  352. arelle/resources/cache/http/www.xbrl.org/2008/relative-filter.xsd +38 -0
  353. arelle/resources/cache/http/www.xbrl.org/2008/segment-scenario-filter.xsd +41 -0
  354. arelle/resources/cache/http/www.xbrl.org/2008/tuple-filter.xsd +83 -0
  355. arelle/resources/cache/http/www.xbrl.org/2008/unit-filter.xsd +58 -0
  356. arelle/resources/cache/http/www.xbrl.org/2008/validation.xsd +78 -0
  357. arelle/resources/cache/http/www.xbrl.org/2008/value-assertion.xsd +43 -0
  358. arelle/resources/cache/http/www.xbrl.org/2008/value-filter.xsd +43 -0
  359. arelle/resources/cache/http/www.xbrl.org/2008/variable.xsd +240 -0
  360. arelle/resources/cache/http/www.xbrl.org/2010/aspect-cover-filter.xsd +67 -0
  361. arelle/resources/cache/http/www.xbrl.org/2010/concept-relation-filter.xsd +108 -0
  362. arelle/resources/cache/http/www.xbrl.org/2010/custom-function-implementation.xsd +71 -0
  363. arelle/resources/cache/http/www.xbrl.org/2010/generic-message.xsd +68 -0
  364. arelle/resources/cache/http/www.xbrl.org/2010/validation-message.xsd +50 -0
  365. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xbrl/xbrl-instance-2003-12-31-ixmod.xsd +788 -0
  366. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xbrl/xbrl-linkbase-2003-12-31-ixmod.xsd +488 -0
  367. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xbrl/xl-2003-12-31.xsd +248 -0
  368. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xbrl/xlink-2003-12-31.xsd +117 -0
  369. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xframes-1.xsd +166 -0
  370. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-applet-1.xsd +66 -0
  371. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-attribs-1.xsd +72 -0
  372. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-base-1.xsd +36 -0
  373. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-basic-form-1.xsd +195 -0
  374. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-basic-table-1.xsd +169 -0
  375. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-basic10-model-1.xsd +376 -0
  376. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-basic10-module-redefines-1.xsd +61 -0
  377. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-basic10-modules-1.xsd +259 -0
  378. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-basic10.xsd +98 -0
  379. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-bdo-1.xsd +78 -0
  380. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-blkphras-1.xsd +161 -0
  381. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-blkpres-1.xsd +37 -0
  382. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-blkstruct-1.xsd +49 -0
  383. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-charent-1.xsd +38 -0
  384. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-copyright-1.xsd +29 -0
  385. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-csismap-1.xsd +96 -0
  386. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-datatypes-1.xsd +128 -0
  387. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-edit-1.xsd +39 -0
  388. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-events-1.xsd +130 -0
  389. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-form-1.xsd +326 -0
  390. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-frames-1.xsd +113 -0
  391. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-framework-1.xsd +66 -0
  392. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-hypertext-1.xsd +47 -0
  393. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-iframe-1.xsd +68 -0
  394. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-image-1.xsd +45 -0
  395. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-inlphras-1.xsd +163 -0
  396. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-inlpres-1.xsd +39 -0
  397. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-inlstruct-1.xsd +50 -0
  398. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-inlstyle-1.xsd +27 -0
  399. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-legacy-1.xsd +97 -0
  400. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-link-1.xsd +45 -0
  401. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-list-1.xsd +99 -0
  402. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-meta-1.xsd +42 -0
  403. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-misc-1.xsd +441 -0
  404. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-nameident-1.xsd +63 -0
  405. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-notations-1.xsd +69 -0
  406. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-object-1.xsd +76 -0
  407. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-param-1.xsd +51 -0
  408. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-pres-1.xsd +51 -0
  409. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-ruby-1.xsd +171 -0
  410. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-ruby-basic-1.xsd +89 -0
  411. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-script-1.xsd +70 -0
  412. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-ssismap-1.xsd +43 -0
  413. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-struct-1.xsd +112 -0
  414. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-style-1.xsd +52 -0
  415. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-table-1.xsd +272 -0
  416. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-target-1.xsd +53 -0
  417. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml-text-1.xsd +67 -0
  418. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml11-model-1.xsd +677 -0
  419. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml11-module-redefines-1.xsd +335 -0
  420. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml11-modules-1.xsd +528 -0
  421. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml11.xsd +104 -0
  422. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xhtml2.xsd +21 -0
  423. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xml-events-1.xsd +73 -0
  424. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xml-events-2.xsd +74 -0
  425. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xml-events-attribs-1.xsd +73 -0
  426. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xml-events-attribs-2.xsd +75 -0
  427. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xml-events-copyright-1.xsd +34 -0
  428. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xml-events-copyright-2.xsd +34 -0
  429. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml/xml-handlers-2.xsd +98 -0
  430. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml-inlinexbrl-1_1-definitions.xsd +252 -0
  431. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml-inlinexbrl-1_1-model.xsd +681 -0
  432. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml-inlinexbrl-1_1-modules.xsd +535 -0
  433. arelle/resources/cache/http/www.xbrl.org/2013/inlineXBRL/xhtml-inlinexbrl-1_1.xsd +40 -0
  434. arelle/resources/cache/http/www.xbrl.org/2013/match-filter.xsd +94 -0
  435. arelle/resources/cache/http/www.xbrl.org/2013/preferred-label.xsd +12 -0
  436. arelle/resources/cache/http/www.xbrl.org/2013/versioning-base.xsd +142 -0
  437. arelle/resources/cache/http/www.xbrl.org/2013/versioning-concept-details.xsd +143 -0
  438. arelle/resources/cache/http/www.xbrl.org/2013/versioning-concept-use.xsd +64 -0
  439. arelle/resources/cache/http/www.xbrl.org/2013/versioning-dimensions.xsd +162 -0
  440. arelle/resources/cache/http/www.xbrl.org/2014/extensible-enumerations.xsd +27 -0
  441. arelle/resources/cache/http/www.xbrl.org/2014/table.xsd +356 -0
  442. arelle/resources/cache/http/www.xbrl.org/2014/tablemodel.xsd +156 -0
  443. arelle/resources/cache/http/www.xbrl.org/2016/assertion-severity.xsd +29 -0
  444. arelle/resources/cache/http/www.xbrl.org/2016/severities.xml +21 -0
  445. arelle/resources/cache/http/www.xbrl.org/2016/taxonomy-package-catalog.xsd +38 -0
  446. arelle/resources/cache/http/www.xbrl.org/2016/taxonomy-package.xsd +154 -0
  447. arelle/resources/cache/http/www.xbrl.org/2022/assertion-severity.xsd +43 -0
  448. arelle/resources/cache/http/www.xbrl.org/2022/severities.xml +21 -0
  449. arelle/resources/cache/http/www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd +76 -0
  450. arelle/resources/cache/http/www.xbrl.org/dtr/type/numeric-2009-12-16.xsd +78 -0
  451. arelle/resources/cache/http/www.xbrl.org/lrr/arcrole/accounting-arcrole-2023-01-04.xsd +39 -0
  452. arelle/resources/cache/http/www.xbrl.org/lrr/arcrole/deprecated-2009-12-16.xsd +29 -0
  453. arelle/resources/cache/http/www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd +14 -0
  454. arelle/resources/cache/http/www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd +13 -0
  455. arelle/resources/cache/http/www.xbrl.org/lrr/arcrole/jpfr-arcrole-2007-11-07.xsd +27 -0
  456. arelle/resources/cache/http/www.xbrl.org/lrr/arcrole/parent-child-2013-09-19.xsd +12 -0
  457. arelle/resources/cache/http/www.xbrl.org/lrr/role/deprecated-2009-12-16.xsd +17 -0
  458. arelle/resources/cache/http/www.xbrl.org/lrr/role/jpfr-role-2007-11-07.xsd +47 -0
  459. arelle/resources/cache/http/www.xbrl.org/lrr/role/negated-2008-03-31.xsd +30 -0
  460. arelle/resources/cache/http/www.xbrl.org/lrr/role/negated-2009-12-16.xsd +33 -0
  461. arelle/resources/cache/http/www.xbrl.org/lrr/role/negative-2009-12-16.xsd +25 -0
  462. arelle/resources/cache/http/www.xbrl.org/lrr/role/net-2009-12-16.xsd +13 -0
  463. arelle/resources/cache/http/www.xbrl.org/lrr/role/positive-2009-12-16.xsd +25 -0
  464. arelle/resources/cache/http/www.xbrl.org/lrr/role/property-2022-09-28.xsd +15 -0
  465. arelle/resources/cache/http/www.xbrl.org/lrr/role/reference-2009-12-16.xsd +21 -0
  466. arelle/resources/cache/http/www.xbrl.org/lrr/role/restated-2006-02-21.xsd +19 -0
  467. arelle/resources/cache/http/www.xbrl.org/utr/2012-01-30/utr.xml +4543 -0
  468. arelle/resources/cache/http/www.xbrl.org/utr/2012-10-31/utr.xml +4510 -0
  469. arelle/resources/cache/http/www.xbrl.org/utr/2012-11-30/utr.xml +4567 -0
  470. arelle/resources/cache/http/www.xbrl.org/utr/2013-02-28/utr.xml +5180 -0
  471. arelle/resources/cache/http/www.xbrl.org/utr/2013-05-17/utr.xml +5349 -0
  472. arelle/resources/cache/http/www.xbrl.org/utr/2016-08-10/utr.xml +5363 -0
  473. arelle/resources/cache/http/www.xbrl.org/utr/2017-07-12/utr.xml +6164 -0
  474. arelle/resources/cache/http/www.xbrl.org/utr/2021-02-16/utr.xml +6370 -0
  475. arelle/resources/cache/http/www.xbrl.org/utr/2021-12-08/utr.xml +6493 -0
  476. arelle/resources/cache/http/www.xbrl.org/utr/2022-02-16/utr.xml +6551 -0
  477. arelle/resources/cache/http/www.xbrl.org/utr/2022-07-20/utr.xml +6638 -0
  478. arelle/resources/cache/http/www.xbrl.org/utr/2023-12-20/utr.xml +6680 -0
  479. arelle/resources/cache/http/www.xbrl.org/utr/2024-01-31/utr.xml +6680 -0
  480. arelle/resources/cache/http/www.xbrl.org/utr/2024-10-22/utr.xml +6693 -0
  481. arelle/resources/cache/http/www.xbrl.org/utr/utr.xml +6693 -0
  482. arelle/resources/cache/https/www.xbrl.org/2005/conformance.xsd +87 -0
  483. arelle/resources/cache/https/www.xbrl.org/2020/extensible-enumerations-2.0.xsd +51 -0
  484. arelle/resources/cache/https/www.xbrl.org/2023/calculation-1.1.xsd +27 -0
  485. arelle/resources/cache/https/www.xbrl.org/dtr/type/2020-01-21/types.xsd +812 -0
  486. arelle/resources/cache/https/www.xbrl.org/dtr/type/2022-03-31/types.xsd +847 -0
  487. arelle/resources/cache/https/www.xbrl.org/dtr/type/2024-01-31/types.xsd +897 -0
  488. arelle/resources/cache/https/www.xbrl.org/taxonomy/int/filing-indicators/REC/2021-02-03/filing-indicators-def.xml +68 -0
  489. arelle/resources/cache/https/www.xbrl.org/taxonomy/int/filing-indicators/REC/2021-02-03/filing-indicators-label.xml +84 -0
  490. arelle/resources/cache/https/www.xbrl.org/taxonomy/int/filing-indicators/REC/2021-02-03/filing-indicators.xsd +67 -0
  491. arelle/resources/libs/Tktable2.11/linux-x86_64/README.txt +149 -0
  492. arelle/resources/libs/Tktable2.11/linux-x86_64/html/tkTable.html +2039 -0
  493. arelle/resources/libs/Tktable2.11/linux-x86_64/libTktable2.11.so +0 -0
  494. arelle/resources/libs/Tktable2.11/linux-x86_64/license.txt +51 -0
  495. arelle/resources/libs/Tktable2.11/linux-x86_64/pkgIndex.tcl +3 -0
  496. arelle/resources/libs/Tktable2.11/linux-x86_64/tkTable.tcl +825 -0
  497. arelle/resources/libs/Tktable2.11/linux-x86_64/tktable.py +674 -0
  498. arelle/resources/libs/Tktable2.11/macos-arm64/README.txt +149 -0
  499. arelle/resources/libs/Tktable2.11/macos-arm64/html/tkTable.html +2039 -0
  500. arelle/resources/libs/Tktable2.11/macos-arm64/libTktable2.11.dylib +0 -0
  501. arelle/resources/libs/Tktable2.11/macos-arm64/license.txt +51 -0
  502. arelle/resources/libs/Tktable2.11/macos-arm64/pkgIndex.tcl +2 -0
  503. arelle/resources/libs/Tktable2.11/macos-arm64/tkTable.tcl +825 -0
  504. arelle/resources/libs/Tktable2.11/macos-arm64/tktable.py +674 -0
  505. arelle/resources/libs/Tktable2.11/macos-x86_64/README.txt +149 -0
  506. arelle/resources/libs/Tktable2.11/macos-x86_64/html/tkTable.html +2039 -0
  507. arelle/resources/libs/Tktable2.11/macos-x86_64/libTktable2.11.dylib +0 -0
  508. arelle/resources/libs/Tktable2.11/macos-x86_64/license.txt +51 -0
  509. arelle/resources/libs/Tktable2.11/macos-x86_64/pkgIndex.tcl +2 -0
  510. arelle/resources/libs/Tktable2.11/macos-x86_64/tkTable.tcl +825 -0
  511. arelle/resources/libs/Tktable2.11/macos-x86_64/tktable.py +674 -0
  512. arelle/resources/libs/Tktable2.11/win-x86_64/Tktable.dll +0 -0
  513. arelle/resources/libs/Tktable2.11/win-x86_64/pkgIndex.tcl +2 -0
  514. arelle/resources/libs/Tktable2.11/win-x86_64/tkTable.tcl +825 -0
  515. arelle/typing.py +9 -4
  516. arelle/utils/Contexts.py +38 -0
  517. arelle/utils/EntryPointDetection.py +139 -0
  518. arelle/utils/Equivalence.py +22 -0
  519. arelle/utils/{validate/PluginValidationData.py → PluginData.py} +5 -2
  520. arelle/utils/PluginHooks.py +256 -5
  521. arelle/utils/Units.py +36 -0
  522. arelle/utils/validate/Decorator.py +5 -3
  523. arelle/utils/validate/DetectScriptsInXhtml.py +99 -0
  524. arelle/utils/validate/ESEFImage.py +283 -0
  525. arelle/utils/validate/Validation.py +9 -1
  526. arelle/utils/validate/ValidationPlugin.py +74 -11
  527. arelle/utils/validate/ValidationUtil.py +55 -0
  528. arelle/webserver/bottle.py +5 -4424
  529. {arelle_release-2.17.1.dist-info → arelle_release-2.37.71.dist-info}/METADATA +51 -42
  530. arelle_release-2.37.71.dist-info/RECORD +697 -0
  531. {arelle_release-2.17.1.dist-info → arelle_release-2.37.71.dist-info}/WHEEL +1 -1
  532. {arelle_release-2.17.1.dist-info → arelle_release-2.37.71.dist-info/licenses}/LICENSE.md +1 -4
  533. {arelle_release-2.17.1.dist-info → arelle_release-2.37.71.dist-info}/top_level.txt +0 -1
  534. arelle/DialogOpenTaxonomyPackage.py +0 -1
  535. arelle/RenderingResolver.py +0 -624
  536. arelle/examples/.pydevproject +0 -5
  537. arelle/examples/CustomLogger.py +0 -43
  538. arelle/examples/LoadEFMvalidate.py +0 -32
  539. arelle/examples/LoadSavePreLbCsv.py +0 -26
  540. arelle/examples/LoadValidate.cs +0 -31
  541. arelle/examples/LoadValidate.py +0 -36
  542. arelle/examples/LoadValidateCmdLine.java +0 -69
  543. arelle/examples/LoadValidatePostedZip.java +0 -57
  544. arelle/examples/LoadValidateWebService.java +0 -34
  545. arelle/examples/SaveTableToExelle.py +0 -140
  546. arelle/examples/TR3toTR4.py +0 -88
  547. arelle/examples/plugin/bigInstance.py +0 -394
  548. arelle/examples/plugin/cmdWebServerExtension.py +0 -42
  549. arelle/examples/plugin/crashTest.py +0 -38
  550. arelle/examples/plugin/formulaSuiteConverter.py +0 -212
  551. arelle/examples/plugin/functionsCustom.py +0 -59
  552. arelle/examples/plugin/hello_dolly.py +0 -64
  553. arelle/examples/plugin/hello_i18n.pot +0 -26
  554. arelle/examples/plugin/hello_i18n.py +0 -32
  555. arelle/examples/plugin/importTestChild1.py +0 -21
  556. arelle/examples/plugin/importTestChild2.py +0 -22
  557. arelle/examples/plugin/importTestGrandchild1.py +0 -21
  558. arelle/examples/plugin/importTestGrandchild2.py +0 -21
  559. arelle/examples/plugin/importTestImported1.py +0 -23
  560. arelle/examples/plugin/importTestImported11.py +0 -22
  561. arelle/examples/plugin/importTestParent.py +0 -48
  562. arelle/examples/plugin/locale/fr/LC_MESSAGES/hello_i18n.po +0 -25
  563. arelle/examples/plugin/packagedImportTest/__init__.py +0 -47
  564. arelle/examples/plugin/packagedImportTest/importTestChild1.py +0 -21
  565. arelle/examples/plugin/packagedImportTest/importTestChild2.py +0 -22
  566. arelle/examples/plugin/packagedImportTest/importTestGrandchild1.py +0 -21
  567. arelle/examples/plugin/packagedImportTest/importTestGrandchild2.py +0 -21
  568. arelle/examples/plugin/packagedImportTest/importTestImported1.py +0 -24
  569. arelle/examples/plugin/packagedImportTest/importTestImported11.py +0 -21
  570. arelle/examples/plugin/packagedImportTest/subdir/importTestImported111.py +0 -21
  571. arelle/examples/plugin/packagedImportTest/subdir/subsubdir/importTestImported1111.py +0 -21
  572. arelle/examples/plugin/sakaCalendar.py +0 -215
  573. arelle/examples/plugin/saveInstanceInfoset.py +0 -121
  574. arelle/examples/plugin/streamingExtensions.py +0 -335
  575. arelle/examples/plugin/testcaseCalc11ValidateSetup.py +0 -32
  576. arelle/examples/plugin/testcaseIxExpectedHtmlFixup.py +0 -45
  577. arelle/examples/plugin/updateTableLB.py +0 -242
  578. arelle/examples/plugin/validate/XYZ/DisclosureSystems.py +0 -2
  579. arelle/examples/plugin/validate/XYZ/PluginValidationDataExtension.py +0 -10
  580. arelle/examples/plugin/validate/XYZ/ValidationPluginExtension.py +0 -49
  581. arelle/examples/plugin/validate/XYZ/__init__.py +0 -75
  582. arelle/examples/plugin/validate/XYZ/resources/config.xml +0 -16
  583. arelle/examples/plugin/validate/XYZ/rules/rules01.py +0 -109
  584. arelle/examples/plugin/validate/XYZ/rules/rules02.py +0 -58
  585. arelle/examples/plugin/validateSchemaLxml.py +0 -156
  586. arelle/examples/plugin/validateTableInfoset.py +0 -52
  587. arelle/examples/us-gaap-dei-docType-extraction-frm.xml +0 -90
  588. arelle/examples/us-gaap-dei-ratio-cash-frm.xml +0 -150
  589. arelle/plugin/functionsXmlCreation.py +0 -106
  590. arelle/plugin/instanceInfo.py +0 -306
  591. arelle/plugin/loadFromOIM-2018.py +0 -1282
  592. arelle/plugin/objectmaker.py +0 -285
  593. arelle/plugin/sphinx/FormulaGenerator.py +0 -823
  594. arelle/plugin/sphinx/SphinxContext.py +0 -404
  595. arelle/plugin/sphinx/SphinxEvaluator.py +0 -783
  596. arelle/plugin/sphinx/SphinxMethods.py +0 -1287
  597. arelle/plugin/sphinx/SphinxParser.py +0 -1093
  598. arelle/plugin/sphinx/SphinxValidator.py +0 -163
  599. arelle/plugin/sphinx/US-GAAP Ratios Example.xsr +0 -52
  600. arelle/plugin/sphinx/__init__.py +0 -285
  601. arelle/plugin/transforms/SEC/__init__.py +0 -308
  602. arelle/plugin/transforms/SEC/conf/README.md +0 -39
  603. arelle/plugin/transforms/SEC/conf/extractTestcase.sh +0 -2
  604. arelle/plugin/transforms/SEC/conf/extractTestcase.xsl +0 -109
  605. arelle/plugin/transforms/SEC/conf/runIxtSecTests.sh +0 -16
  606. arelle/plugin/transforms/SEC/conf/saxon9.jar +0 -0
  607. arelle/plugin/transforms/SEC/conf/testcase.xml +0 -7117
  608. arelle/plugin/transforms/SEC/conf/tests.xml +0 -848
  609. arelle/plugin/transforms/SEC/text2num.py +0 -110
  610. arelle/plugin/transforms/SEC/transformationRegistry/registry/ixt-sec-boolballotbox.xml +0 -66
  611. arelle/plugin/transforms/SEC/transformationRegistry/registry/ixt-sec-countrynameen.xml +0 -65
  612. arelle/plugin/transforms/SEC/transformationRegistry/registry/ixt-sec-datequarterend.xml +0 -66
  613. arelle/plugin/transforms/SEC/transformationRegistry/registry/ixt-sec-durday.xml +0 -61
  614. arelle/plugin/transforms/SEC/transformationRegistry/registry/ixt-sec-durhour.xml +0 -69
  615. arelle/plugin/transforms/SEC/transformationRegistry/registry/ixt-sec-durmonth.xml +0 -71
  616. arelle/plugin/transforms/SEC/transformationRegistry/registry/ixt-sec-durweek.xml +0 -70
  617. arelle/plugin/transforms/SEC/transformationRegistry/registry/ixt-sec-durwordsen.xml +0 -56
  618. arelle/plugin/transforms/SEC/transformationRegistry/registry/ixt-sec-duryear.xml +0 -64
  619. arelle/plugin/transforms/SEC/transformationRegistry/registry/ixt-sec-edgarprovcountryen.xml +0 -65
  620. arelle/plugin/transforms/SEC/transformationRegistry/registry/ixt-sec-entityfilercategoryen.xml +0 -63
  621. arelle/plugin/transforms/SEC/transformationRegistry/registry/ixt-sec-exchnameen.xml +0 -86
  622. arelle/plugin/transforms/SEC/transformationRegistry/registry/ixt-sec-numwordsen.xml +0 -55
  623. arelle/plugin/transforms/SEC/transformationRegistry/registry/ixt-sec-stateprovnameen.xml +0 -64
  624. arelle/plugin/transforms/SEC/transformationRegistry/registry/ixt-sec-yesnoballotbox.xml +0 -66
  625. arelle/plugin/transforms/SEC/transformationRegistry/registry/transform-registry.xml +0 -314
  626. arelle/plugin/transforms/SEC/transformationRegistry/schema/inlinexbrl-sec-transformation.xsd +0 -418
  627. arelle/plugin/validate/EFM/Consts.py +0 -362
  628. arelle/plugin/validate/EFM/DTS.py +0 -569
  629. arelle/plugin/validate/EFM/Dimensions.py +0 -264
  630. arelle/plugin/validate/EFM/Document.py +0 -206
  631. arelle/plugin/validate/EFM/Filing.py +0 -4383
  632. arelle/plugin/validate/EFM/IsolateSeparateIXDSes.py +0 -19
  633. arelle/plugin/validate/EFM/MessageNumericId.py +0 -142
  634. arelle/plugin/validate/EFM/PreCalAlignment.py +0 -324
  635. arelle/plugin/validate/EFM/Util.py +0 -688
  636. arelle/plugin/validate/EFM/__init__.py +0 -843
  637. arelle/plugin/validate/EFM/config.xml +0 -333
  638. arelle/plugin/validate/EFM/resources/README.md +0 -57
  639. arelle/plugin/validate/EFM/resources/axiswarnings.json +0 -27
  640. arelle/plugin/validate/EFM/resources/cef-deprecated-concepts.json +0 -8
  641. arelle/plugin/validate/EFM/resources/country-deprecated-concepts.json +0 -19
  642. arelle/plugin/validate/EFM/resources/currency-deprecated-concepts.json +0 -7
  643. arelle/plugin/validate/EFM/resources/dei-deprecated-concepts.json +0 -8
  644. arelle/plugin/validate/EFM/resources/dei-validations.json +0 -2884
  645. arelle/plugin/validate/EFM/resources/dqc-us-rules.json +0 -1389
  646. arelle/plugin/validate/EFM/resources/ecd-deprecated-concepts.json +0 -1
  647. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-16-4.xml +0 -115
  648. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-17-0-4.xml +0 -300
  649. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-17-1.xml +0 -304
  650. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-17-2.xml +0 -290
  651. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-17-3-1.xml +0 -294
  652. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-18.1.xml +0 -549
  653. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-18.2.xml +0 -506
  654. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-18.3.xml +0 -496
  655. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-19-1.xml +0 -662
  656. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-19-2.xml +0 -3761
  657. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-19-3.xml +0 -3577
  658. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-20-1.xml +0 -4020
  659. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-20-2.xml +0 -3320
  660. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-20-3.xml +0 -2998
  661. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-2012.xml +0 -957
  662. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-2013.xml +0 -982
  663. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-2014.xml +0 -1001
  664. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-2015.xml +0 -1076
  665. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-2016.xml +0 -120
  666. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-21-1.xml +0 -3329
  667. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-21-2.xml +0 -1230
  668. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-21-3.xml +0 -1113
  669. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-21-4.xml +0 -1321
  670. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-22-1-preview.xml +0 -1721
  671. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-22-1.xml +0 -1841
  672. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-22-2-2.xml +0 -1450
  673. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-22-2.xml +0 -1429
  674. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-22-4.xml +0 -1527
  675. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-23-1-1.xml +0 -2049
  676. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-23-1.xml +0 -2065
  677. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-23-2.xml +0 -1674
  678. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-23-3.xml +0 -1715
  679. arelle/plugin/validate/EFM/resources/edgartaxonomies/edgartaxonomies-all-years.xml +0 -10671
  680. arelle/plugin/validate/EFM/resources/edgartaxonomies/erxl.xsd +0 -69
  681. arelle/plugin/validate/EFM/resources/edgartaxonomies/extendedtaxonomies-all-years.xml +0 -18
  682. arelle/plugin/validate/EFM/resources/edgartaxonomies/ifrs-taxonomies.xml +0 -3126
  683. arelle/plugin/validate/EFM/resources/edgartaxonomies/ifrstaxonomies-all-years.xml +0 -22
  684. arelle/plugin/validate/EFM/resources/ex26-validations.json +0 -255
  685. arelle/plugin/validate/EFM/resources/exch-deprecated-concepts.json +0 -163
  686. arelle/plugin/validate/EFM/resources/ifrs-full-deprecated-concepts.json +0 -204
  687. arelle/plugin/validate/EFM/resources/invest-deprecated-concepts.json +0 -99
  688. arelle/plugin/validate/EFM/resources/ixbrl-transform-registries.json +0 -16
  689. arelle/plugin/validate/EFM/resources/naics-deprecated-concepts.json +0 -295
  690. arelle/plugin/validate/EFM/resources/oef-deprecated-concepts.json +0 -59
  691. arelle/plugin/validate/EFM/resources/other-standard-taxonomies.json +0 -12
  692. arelle/plugin/validate/EFM/resources/rr-deprecated-concepts.json +0 -14
  693. arelle/plugin/validate/EFM/resources/rxp-deprecated-concepts.json +0 -1
  694. arelle/plugin/validate/EFM/resources/shr-deprecated-concepts.json +0 -1
  695. arelle/plugin/validate/EFM/resources/sic-deprecated-concepts.json +0 -1
  696. arelle/plugin/validate/EFM/resources/signwarnings.json +0 -112
  697. arelle/plugin/validate/EFM/resources/srt-deprecated-concepts.json +0 -1
  698. arelle/plugin/validate/EFM/resources/stpr-deprecated-concepts.json +0 -1
  699. arelle/plugin/validate/EFM/resources/taxonomy-compatibility.json +0 -79
  700. arelle/plugin/validate/EFM/resources/us-gaap-deprecated-concepts.json +0 -2886
  701. arelle/plugin/validate/EFM/resources/us-gaap-rels-2020.json +0 -29068
  702. arelle/plugin/validate/EFM/resources/us-gaap-rels-2021.json +0 -29598
  703. arelle/plugin/validate/EFM/resources/us-gaap-rels-2022.json +0 -29141
  704. arelle/plugin/validate/EFM/resources/us-gaap-rels-2023.json +0 -29400
  705. arelle/plugin/validate/EFM/resources/vip-deprecated-concepts.json +0 -1
  706. arelle/plugin/validate/EFM/tools/CheckTxmyRefs.py +0 -180
  707. arelle/plugin/validate/EFM-htm/Const.py +0 -205
  708. arelle/plugin/validate/EFM-htm/__init__.py +0 -217
  709. arelle/plugin/validate/EFM-htm/config.xml +0 -17
  710. arelle/plugin/validate/EFM-htm/resources/efm-htm.dtd +0 -664
  711. arelle/plugin/validate/ESEF/ESEF_Current/Image.py +0 -199
  712. arelle/plugin/validate/ESEF_2022/__init__.py +0 -47
  713. arelle/plugin/validate/GFM/__init__.py +0 -59
  714. arelle/plugin/validate/GFM/config.xml +0 -82
  715. arelle/plugin/validate/SBRnl/CustomLoader.py +0 -19
  716. arelle/plugin/validate/SBRnl/DTS.py +0 -305
  717. arelle/plugin/validate/SBRnl/Dimensions.py +0 -357
  718. arelle/plugin/validate/SBRnl/Document.py +0 -799
  719. arelle/plugin/validate/SBRnl/Filing.py +0 -467
  720. arelle/plugin/validate/SBRnl/__init__.py +0 -75
  721. arelle/plugin/validate/SBRnl/config.xml +0 -26
  722. arelle/plugin/validate/SBRnl/sbr-nl-taxonomies.xml +0 -754
  723. arelle/plugin/validate/USBestPractices.py +0 -570
  724. arelle/plugin/validate/USCorpAction.py +0 -557
  725. arelle/plugin/validate/USSecTagging.py +0 -337
  726. arelle/plugin/validate/XDC/__init__.py +0 -77
  727. arelle/plugin/validate/XDC/config.xml +0 -20
  728. arelle/plugin/validate/XFsyntax/__init__.py +0 -64
  729. arelle/plugin/validate/XFsyntax/xf.py +0 -2227
  730. arelle/plugin/validate/__init__.py +0 -20
  731. arelle/plugin/validate/calc2.py +0 -536
  732. arelle/plugin/validateSBRnl.py +0 -530
  733. arelle/scripts-macOS/startWebServer.command +0 -3
  734. arelle/scripts-unix/startWebServer.sh +0 -1
  735. arelle/scripts-windows/startWebServer.bat +0 -5
  736. arelle_release-2.17.1.dist-info/RECORD +0 -676
  737. tests/__init__.py +0 -0
  738. tests/integration_tests/ui_tests/ArelleGUITest/ArelleGUITest/ArelleGUITest.csproj +0 -30
  739. tests/integration_tests/ui_tests/ArelleGUITest/ArelleGUITest/Tests.cs +0 -381
  740. tests/integration_tests/ui_tests/ArelleGUITest/ArelleGUITest/Usings.cs +0 -1
  741. tests/integration_tests/ui_tests/ArelleGUITest/ArelleGUITest.sln +0 -31
  742. tests/integration_tests/ui_tests/resources/workiva.zip +0 -0
  743. tests/integration_tests/validation/README.md +0 -50
  744. tests/integration_tests/validation/conformance_suite_config.py +0 -59
  745. tests/integration_tests/validation/conformance_suite_configs.py +0 -63
  746. tests/integration_tests/validation/conformance_suite_configurations/efm_current.py +0 -261
  747. tests/integration_tests/validation/conformance_suite_configurations/esef_ixbrl_2021.py +0 -85
  748. tests/integration_tests/validation/conformance_suite_configurations/esef_ixbrl_2022.py +0 -90
  749. tests/integration_tests/validation/conformance_suite_configurations/esef_xhtml_2021.py +0 -15
  750. tests/integration_tests/validation/conformance_suite_configurations/esef_xhtml_2022.py +0 -15
  751. tests/integration_tests/validation/conformance_suite_configurations/nl_nt16.py +0 -13
  752. tests/integration_tests/validation/conformance_suite_configurations/nl_nt17.py +0 -13
  753. tests/integration_tests/validation/conformance_suite_configurations/nl_nt18.py +0 -13
  754. tests/integration_tests/validation/conformance_suite_configurations/xbrl_2_1.py +0 -34
  755. tests/integration_tests/validation/conformance_suite_configurations/xbrl_calculations_1_1.py +0 -40
  756. tests/integration_tests/validation/conformance_suite_configurations/xbrl_dimensions_1_0.py +0 -28
  757. tests/integration_tests/validation/conformance_suite_configurations/xbrl_extensible_enumerations_1_0.py +0 -10
  758. tests/integration_tests/validation/conformance_suite_configurations/xbrl_extensible_enumerations_2_0.py +0 -10
  759. tests/integration_tests/validation/conformance_suite_configurations/xbrl_formula_1_0.py +0 -9
  760. tests/integration_tests/validation/conformance_suite_configurations/xbrl_formula_1_0_assertion_severity_2_0.py +0 -9
  761. tests/integration_tests/validation/conformance_suite_configurations/xbrl_formula_1_0_function_registry.py +0 -14
  762. tests/integration_tests/validation/conformance_suite_configurations/xbrl_ixbrl_1_1.py +0 -22
  763. tests/integration_tests/validation/conformance_suite_configurations/xbrl_link_role_registry_1_0.py +0 -11
  764. tests/integration_tests/validation/conformance_suite_configurations/xbrl_oim_1_0.py +0 -19
  765. tests/integration_tests/validation/conformance_suite_configurations/xbrl_table_linkbase_1_0.py +0 -296
  766. tests/integration_tests/validation/conformance_suite_configurations/xbrl_taxonomy_packages_1_0.py +0 -13
  767. tests/integration_tests/validation/conformance_suite_configurations/xbrl_transformation_registry_3.py +0 -13
  768. tests/integration_tests/validation/conformance_suite_configurations/xbrl_transformation_registry_4.py +0 -13
  769. tests/integration_tests/validation/conformance_suite_configurations/xbrl_transformation_registry_5.py +0 -13
  770. tests/integration_tests/validation/conformance_suite_configurations/xbrl_utr_malformed_1_0.py +0 -31
  771. tests/integration_tests/validation/conformance_suite_configurations/xbrl_utr_registry_1_0.py +0 -22
  772. tests/integration_tests/validation/conformance_suite_configurations/xbrl_utr_structure_1_0.py +0 -18
  773. tests/integration_tests/validation/conftest.py +0 -24
  774. tests/integration_tests/validation/discover_tests.py +0 -22
  775. tests/integration_tests/validation/download_conformance_suites.py +0 -47
  776. tests/integration_tests/validation/run_conformance_suites.py +0 -175
  777. tests/integration_tests/validation/test_conformance_suites.py +0 -14
  778. tests/integration_tests/validation/validation_util.py +0 -271
  779. tests/resources/conformance_suites/nl_nt16/br_kvk/2-04-invalid-period.xbrl +0 -63
  780. tests/resources/conformance_suites/nl_nt16/br_kvk/2-04-testcase.xml +0 -22
  781. tests/resources/conformance_suites/nl_nt16/br_kvk/3-01-missing.xbrl +0 -53
  782. tests/resources/conformance_suites/nl_nt16/br_kvk/3-01-multiple.xbrl +0 -60
  783. tests/resources/conformance_suites/nl_nt16/br_kvk/3-01-testcase.xml +0 -33
  784. tests/resources/conformance_suites/nl_nt16/br_kvk/4-07-invalid.xbrl +0 -57
  785. tests/resources/conformance_suites/nl_nt16/br_kvk/4-07-testcase.xml +0 -22
  786. tests/resources/conformance_suites/nl_nt16/br_kvk/4-10-invalid.xbrl +0 -58
  787. tests/resources/conformance_suites/nl_nt16/br_kvk/4-10-testcase.xml +0 -22
  788. tests/resources/conformance_suites/nl_nt16/br_kvk/4-12-invalid.xbrl +0 -63
  789. tests/resources/conformance_suites/nl_nt16/br_kvk/4-12-testcase.xml +0 -22
  790. tests/resources/conformance_suites/nl_nt16/br_kvk/4-16-missing.xbrl +0 -61
  791. tests/resources/conformance_suites/nl_nt16/br_kvk/4-16-testcase.xml +0 -22
  792. tests/resources/conformance_suites/nl_nt16/br_kvk/4-20-invalid-date.xbrl +0 -89
  793. tests/resources/conformance_suites/nl_nt16/br_kvk/4-20-testcase.xml +0 -22
  794. tests/resources/conformance_suites/nl_nt16/fr_kvk/1-01-invalid-file-extension.xml +0 -56
  795. tests/resources/conformance_suites/nl_nt16/fr_kvk/1-01-testcase.xml +0 -22
  796. tests/resources/conformance_suites/nl_nt16/fr_kvk/2-01-invalid-lang.xbrl +0 -56
  797. tests/resources/conformance_suites/nl_nt16/fr_kvk/2-01-missing-lang.xbrl +0 -55
  798. tests/resources/conformance_suites/nl_nt16/fr_kvk/2-01-testcase.xml +0 -33
  799. tests/resources/conformance_suites/nl_nt16/fr_kvk/2-03-entrypoint.xsd +0 -6
  800. tests/resources/conformance_suites/nl_nt16/fr_kvk/2-03-invalid-entrypoint.xbrl +0 -63
  801. tests/resources/conformance_suites/nl_nt16/fr_kvk/2-03-testcase.xml +0 -22
  802. tests/resources/conformance_suites/nl_nt16/fr_kvk/5-01-invalid-decimals.xbrl +0 -49
  803. tests/resources/conformance_suites/nl_nt16/fr_kvk/5-01-testcase.xml +0 -22
  804. tests/resources/conformance_suites/nl_nt16/fr_kvk/5-02-invalid-decimals.xbrl +0 -49
  805. tests/resources/conformance_suites/nl_nt16/fr_kvk/5-02-testcase.xml +0 -22
  806. tests/resources/conformance_suites/nl_nt16/fr_nl/1-01-invalid-file.xbrl +0 -2
  807. tests/resources/conformance_suites/nl_nt16/fr_nl/1-01-invalid-zip.zip +0 -0
  808. tests/resources/conformance_suites/nl_nt16/fr_nl/1-01-testcase.xml +0 -33
  809. tests/resources/conformance_suites/nl_nt16/fr_nl/1-03-invalid-doctype.xbrl +0 -4
  810. tests/resources/conformance_suites/nl_nt16/fr_nl/1-03-testcase.xml +0 -22
  811. tests/resources/conformance_suites/nl_nt16/fr_nl/1-05-invalid-encoding.xbrl +0 -0
  812. tests/resources/conformance_suites/nl_nt16/fr_nl/1-05-testcase.xml +0 -22
  813. tests/resources/conformance_suites/nl_nt16/fr_nl/1-06-testcase.xml +0 -22
  814. tests/resources/conformance_suites/nl_nt16/fr_nl/1-06.invalid.xbrl +0 -2
  815. tests/resources/conformance_suites/nl_nt16/fr_nl/2-06-invalid-file.xbrl +0 -8
  816. tests/resources/conformance_suites/nl_nt16/fr_nl/2-06-invalid-zip.zip +0 -0
  817. tests/resources/conformance_suites/nl_nt16/fr_nl/2-06-testcase.xml +0 -33
  818. tests/resources/conformance_suites/nl_nt16/index.xml +0 -20
  819. tests/resources/conformance_suites/nl_nt17/br_kvk/2-04-invalid-period.xbrl +0 -63
  820. tests/resources/conformance_suites/nl_nt17/br_kvk/2-04-testcase.xml +0 -22
  821. tests/resources/conformance_suites/nl_nt17/br_kvk/3-01-missing.xbrl +0 -53
  822. tests/resources/conformance_suites/nl_nt17/br_kvk/3-01-multiple.xbrl +0 -60
  823. tests/resources/conformance_suites/nl_nt17/br_kvk/3-01-testcase.xml +0 -33
  824. tests/resources/conformance_suites/nl_nt17/br_kvk/4-07-invalid.xbrl +0 -57
  825. tests/resources/conformance_suites/nl_nt17/br_kvk/4-07-testcase.xml +0 -22
  826. tests/resources/conformance_suites/nl_nt17/br_kvk/4-10-invalid.xbrl +0 -58
  827. tests/resources/conformance_suites/nl_nt17/br_kvk/4-10-testcase.xml +0 -22
  828. tests/resources/conformance_suites/nl_nt17/br_kvk/4-12-invalid.xbrl +0 -63
  829. tests/resources/conformance_suites/nl_nt17/br_kvk/4-12-testcase.xml +0 -22
  830. tests/resources/conformance_suites/nl_nt17/br_kvk/4-16-missing.xbrl +0 -61
  831. tests/resources/conformance_suites/nl_nt17/br_kvk/4-16-testcase.xml +0 -22
  832. tests/resources/conformance_suites/nl_nt17/br_kvk/4-20-invalid-date.xbrl +0 -89
  833. tests/resources/conformance_suites/nl_nt17/br_kvk/4-20-testcase.xml +0 -22
  834. tests/resources/conformance_suites/nl_nt17/fr_kvk/1-01-invalid-file-extension.xml +0 -56
  835. tests/resources/conformance_suites/nl_nt17/fr_kvk/1-01-testcase.xml +0 -22
  836. tests/resources/conformance_suites/nl_nt17/fr_kvk/2-01-invalid-lang.xbrl +0 -56
  837. tests/resources/conformance_suites/nl_nt17/fr_kvk/2-01-missing-lang.xbrl +0 -55
  838. tests/resources/conformance_suites/nl_nt17/fr_kvk/2-01-testcase.xml +0 -33
  839. tests/resources/conformance_suites/nl_nt17/fr_kvk/2-03-entrypoint.xsd +0 -6
  840. tests/resources/conformance_suites/nl_nt17/fr_kvk/2-03-invalid-entrypoint.xbrl +0 -63
  841. tests/resources/conformance_suites/nl_nt17/fr_kvk/2-03-testcase.xml +0 -22
  842. tests/resources/conformance_suites/nl_nt17/fr_kvk/5-01-invalid-decimals.xbrl +0 -49
  843. tests/resources/conformance_suites/nl_nt17/fr_kvk/5-01-testcase.xml +0 -22
  844. tests/resources/conformance_suites/nl_nt17/fr_kvk/5-02-invalid-decimals.xbrl +0 -49
  845. tests/resources/conformance_suites/nl_nt17/fr_kvk/5-02-testcase.xml +0 -22
  846. tests/resources/conformance_suites/nl_nt17/fr_nl/1-01-invalid-file.xbrl +0 -2
  847. tests/resources/conformance_suites/nl_nt17/fr_nl/1-01-invalid-zip.zip +0 -0
  848. tests/resources/conformance_suites/nl_nt17/fr_nl/1-01-testcase.xml +0 -33
  849. tests/resources/conformance_suites/nl_nt17/fr_nl/1-03-invalid-doctype.xbrl +0 -4
  850. tests/resources/conformance_suites/nl_nt17/fr_nl/1-03-testcase.xml +0 -22
  851. tests/resources/conformance_suites/nl_nt17/fr_nl/1-05-invalid-encoding.xbrl +0 -0
  852. tests/resources/conformance_suites/nl_nt17/fr_nl/1-05-testcases.xml +0 -22
  853. tests/resources/conformance_suites/nl_nt17/fr_nl/1-06-testcase.xml +0 -22
  854. tests/resources/conformance_suites/nl_nt17/fr_nl/1-06.invalid.xbrl +0 -2
  855. tests/resources/conformance_suites/nl_nt17/fr_nl/2-06-invalid-file.xbrl +0 -8
  856. tests/resources/conformance_suites/nl_nt17/fr_nl/2-06-invalid-zip.zip +0 -0
  857. tests/resources/conformance_suites/nl_nt17/fr_nl/2-06-testcase.xml +0 -33
  858. tests/resources/conformance_suites/nl_nt17/index.xml +0 -20
  859. tests/resources/conformance_suites/nl_nt18/fr_nl/1-03-invalid-doctype.xbrl +0 -4
  860. tests/resources/conformance_suites/nl_nt18/fr_nl/1-03-testcase.xml +0 -22
  861. tests/resources/conformance_suites/nl_nt18/fr_nl/1-05-invalid-encoding.xbrl +0 -0
  862. tests/resources/conformance_suites/nl_nt18/fr_nl/1-05-testcases.xml +0 -22
  863. tests/resources/conformance_suites/nl_nt18/fr_nl/1-06-testcase.xml +0 -22
  864. tests/resources/conformance_suites/nl_nt18/fr_nl/1-06.invalid.xbrl +0 -2
  865. tests/resources/conformance_suites/nl_nt18/fr_nl/1.01-invalid-file.xbrl +0 -2
  866. tests/resources/conformance_suites/nl_nt18/fr_nl/1.01-invalid-zip.zip +0 -0
  867. tests/resources/conformance_suites/nl_nt18/fr_nl/1.01-testcase.xml +0 -33
  868. tests/resources/conformance_suites/nl_nt18/fr_nl/2-06-invalid-file.xbrl +0 -8
  869. tests/resources/conformance_suites/nl_nt18/fr_nl/2-06-invalid-zip.zip +0 -0
  870. tests/resources/conformance_suites/nl_nt18/fr_nl/2-06-testcase.xml +0 -33
  871. tests/resources/conformance_suites/nl_nt18/index.xml +0 -8
  872. tests/unit_tests/arelle/conftest.py +0 -16
  873. tests/unit_tests/arelle/formula/test_fact_aspects_cache.py +0 -170
  874. tests/unit_tests/arelle/plugin/test_loadfromoim.py +0 -40
  875. tests/unit_tests/arelle/plugin/test_plugin_imports.py +0 -27
  876. tests/unit_tests/arelle/test_betafeatures.py +0 -81
  877. tests/unit_tests/arelle/test_cntlr.py +0 -28
  878. tests/unit_tests/arelle/test_import.py +0 -40
  879. tests/unit_tests/arelle/test_locale.py +0 -73
  880. tests/unit_tests/arelle/test_modelmanager.py +0 -15
  881. tests/unit_tests/arelle/test_packagemanager.py +0 -65
  882. tests/unit_tests/arelle/test_pluginmanager.py +0 -176
  883. tests/unit_tests/arelle/test_qname.py +0 -140
  884. tests/unit_tests/arelle/test_runtimeoptions.py +0 -56
  885. tests/unit_tests/arelle/test_system_info.py +0 -26
  886. tests/unit_tests/arelle/test_updater.py +0 -507
  887. tests/unit_tests/arelle/test_urlutil.py +0 -49
  888. tests/unit_tests/arelle/test_version.py +0 -46
  889. tests/unit_tests/arelle/utils/validate/test_decorator.py +0 -59
  890. /arelle/{examples/plugin/validate/XYZ → plugin/validate/EDINET}/rules/__init__.py +0 -0
  891. /arelle/plugin/validate/{HMRC → UK}/consistencyChecksByName.json +0 -0
  892. /arelle/plugin/validate/{HMRC → UK}/hmrc-taxonomies.xml +0 -0
  893. {arelle_release-2.17.1.dist-info → arelle_release-2.37.71.dist-info}/entry_points.txt +0 -0
@@ -1,2227 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding: utf-8 -*-
3
-
4
- # CAVEAT UTILITOR
5
- #
6
- # This file was automatically generated by TatSu.
7
- #
8
- # https://pypi.python.org/pypi/tatsu/
9
- #
10
- # Any changes you make to it will be overwritten the next time
11
- # the file is generated.
12
-
13
-
14
- from __future__ import print_function, division, absolute_import, unicode_literals
15
-
16
- import sys
17
-
18
- from tatsu.buffering import Buffer
19
- from tatsu.parsing import Parser
20
- from tatsu.parsing import tatsumasu
21
- from tatsu.util import re, generic_main
22
-
23
-
24
- KEYWORDS = {} # type: ignore
25
-
26
-
27
- class XFBuffer(Buffer):
28
- def __init__(
29
- self,
30
- text,
31
- whitespace=None,
32
- nameguard=None,
33
- comments_re='(?s)\\(:((?!(\\(:|:\\))).)*:\\)',
34
- eol_comments_re=None,
35
- ignorecase=None,
36
- namechars='-',
37
- **kwargs
38
- ):
39
- super(XFBuffer, self).__init__(
40
- text,
41
- whitespace=whitespace,
42
- nameguard=nameguard,
43
- comments_re=comments_re,
44
- eol_comments_re=eol_comments_re,
45
- ignorecase=ignorecase,
46
- namechars=namechars,
47
- **kwargs
48
- )
49
-
50
-
51
- class XFParser(Parser):
52
- def __init__(
53
- self,
54
- whitespace=None,
55
- nameguard=None,
56
- comments_re='(?s)\\(:((?!(\\(:|:\\))).)*:\\)',
57
- eol_comments_re=None,
58
- ignorecase=None,
59
- left_recursion=True,
60
- parseinfo=True,
61
- keywords=None,
62
- namechars='-',
63
- buffer_class=XFBuffer,
64
- **kwargs
65
- ):
66
- if keywords is None:
67
- keywords = KEYWORDS
68
- super(XFParser, self).__init__(
69
- whitespace=whitespace,
70
- nameguard=nameguard,
71
- comments_re=comments_re,
72
- eol_comments_re=eol_comments_re,
73
- ignorecase=ignorecase,
74
- left_recursion=left_recursion,
75
- parseinfo=parseinfo,
76
- keywords=keywords,
77
- namechars=namechars,
78
- buffer_class=buffer_class,
79
- **kwargs
80
- )
81
-
82
- @tatsumasu()
83
- def _module_(self):
84
-
85
- def block0():
86
- self._namespace_declaration_()
87
- self._closure(block0)
88
-
89
- def block1():
90
- self._default_()
91
- self._closure(block1)
92
-
93
- def block2():
94
- self._parameter_()
95
- self._closure(block2)
96
-
97
- def block3():
98
- with self._choice():
99
- with self._option():
100
- self._filter_declaration_()
101
- with self._option():
102
- self._fact_variable_()
103
- with self._option():
104
- self._general_variable_()
105
- with self._option():
106
- self._function_declaration_()
107
- self._error('no available options')
108
- self._closure(block3)
109
-
110
- def block5():
111
- self._assertion_()
112
- self._closure(block5)
113
- self._check_eof()
114
-
115
- @tatsumasu()
116
- def _separator_(self):
117
- self._token(';')
118
-
119
- @tatsumasu()
120
- def _namespace_declaration_(self):
121
- self._token('namespace')
122
- self._name_()
123
- self._token('=')
124
- self._quoted_url_()
125
- self._separator_()
126
-
127
- @tatsumasu()
128
- def _default_(self):
129
- with self._choice():
130
- with self._option():
131
- self._severity_()
132
- with self._option():
133
- self._token('default-language')
134
- self._language_()
135
- self._separator_()
136
- self._error('no available options')
137
-
138
- @tatsumasu()
139
- def _severity_(self):
140
- self._token('unsatisfied-severity')
141
- self._message_severity_()
142
- self._separator_()
143
-
144
- @tatsumasu()
145
- def _message_severity_(self):
146
- with self._choice():
147
- with self._option():
148
- self._token('ERROR')
149
- with self._option():
150
- self._token('WARNING')
151
- with self._option():
152
- self._token('INFO')
153
- self._error('no available options')
154
-
155
- @tatsumasu()
156
- def _parameter_(self):
157
- self._token('parameter')
158
- self._name_()
159
- with self._optional():
160
- self._token('required')
161
- self._token('{')
162
- with self._optional():
163
- self._token('select')
164
- self._enclosed_expression_()
165
- with self._optional():
166
- self._token('as')
167
- self._qname_()
168
- self._token('}')
169
- self._separator_()
170
-
171
- @tatsumasu()
172
- def _filter_declaration_(self):
173
- self._token('filter')
174
- self._name_()
175
- self._token('{')
176
-
177
- def block0():
178
- self._filter_()
179
- self._positive_closure(block0)
180
- self._token('}')
181
- self._separator_()
182
-
183
- @tatsumasu()
184
- def _filter_(self):
185
- with self._group():
186
- with self._choice():
187
- with self._option():
188
- self._concept_filter_()
189
- with self._option():
190
- self._general_filter_()
191
- with self._option():
192
- self._period_filter_()
193
- with self._option():
194
- self._dimension_filter_()
195
- with self._option():
196
- self._unit_filter_()
197
- with self._option():
198
- self._entity_filter_()
199
- with self._option():
200
- self._match_filter_()
201
- with self._option():
202
- self._relative_filter_()
203
- with self._option():
204
- self._tuple_filter_()
205
- with self._option():
206
- self._value_filter_()
207
- with self._option():
208
- self._boolean_filter_()
209
- with self._option():
210
- self._aspect_cover_filter_()
211
- with self._option():
212
- self._concept_relation_filter_()
213
- with self._option():
214
- self._declared_filter_reference_()
215
- self._error('no available options')
216
-
217
- @tatsumasu()
218
- def _concept_filter_(self):
219
- with self._optional():
220
- self._token('complemented')
221
- with self._group():
222
- with self._choice():
223
- with self._option():
224
- self._token('covering')
225
- with self._option():
226
- self._constant('covering')
227
- with self._option():
228
- self._token('non-covering')
229
- self._error('no available options')
230
- with self._group():
231
- with self._choice():
232
- with self._option():
233
- self._token('concept-name')
234
- self._cut()
235
-
236
- def block1():
237
- with self._choice():
238
- with self._option():
239
- self._qname_()
240
- with self._option():
241
- self._localname_()
242
- with self._option():
243
- self._enclosed_expression_()
244
- self._error('no available options')
245
- self._positive_closure(block1)
246
- with self._option():
247
- self._token('concept-period-type')
248
- self._cut()
249
- with self._group():
250
- with self._choice():
251
- with self._option():
252
- self._token('instant')
253
- with self._option():
254
- self._token('duration')
255
- self._error('no available options')
256
- with self._option():
257
- self._token('concept-balance')
258
- self._cut()
259
- with self._group():
260
- with self._choice():
261
- with self._option():
262
- self._token('credit')
263
- with self._option():
264
- self._token('debit')
265
- with self._option():
266
- self._token('none')
267
- self._error('no available options')
268
- with self._option():
269
- self._token('concept-data-type')
270
- self._cut()
271
- with self._group():
272
- with self._choice():
273
- with self._option():
274
- self._token('strict')
275
- with self._option():
276
- self._token('non-strict')
277
- self._error('no available options')
278
- with self._group():
279
- with self._choice():
280
- with self._option():
281
- self._qname_()
282
- with self._option():
283
- self._enclosed_expression_()
284
- self._error('no available options')
285
- with self._option():
286
- self._token('concept-substitution-group')
287
- self._cut()
288
- with self._group():
289
- with self._choice():
290
- with self._option():
291
- self._token('strict')
292
- with self._option():
293
- self._token('non-strict')
294
- self._error('no available options')
295
- with self._group():
296
- with self._choice():
297
- with self._option():
298
- self._qname_()
299
- with self._option():
300
- self._enclosed_expression_()
301
- self._error('no available options')
302
- self._error('no available options')
303
- self._separator_()
304
-
305
- @tatsumasu()
306
- def _general_filter_(self):
307
- with self._optional():
308
- self._token('complemented')
309
- self._token('general')
310
- self._cut()
311
- self._enclosed_expression_()
312
- self._separator_()
313
-
314
- @tatsumasu()
315
- def _period_filter_(self):
316
- with self._optional():
317
- self._token('complemented')
318
- with self._group():
319
- with self._choice():
320
- with self._option():
321
- self._token('period-start')
322
- self._cut()
323
- with self._group():
324
- with self._choice():
325
- with self._option():
326
- self._date_constant_()
327
- with self._option():
328
- self._date_time_constant_()
329
- with self._option():
330
- with self._group():
331
- self._token('date')
332
- self._enclosed_expression_()
333
- with self._optional():
334
- self._token('time')
335
- self._enclosed_expression_()
336
- self._error('no available options')
337
- with self._option():
338
- self._token('period-end')
339
- self._cut()
340
- with self._group():
341
- with self._choice():
342
- with self._option():
343
- self._date_constant_()
344
- with self._option():
345
- self._date_time_constant_()
346
- with self._option():
347
- with self._group():
348
- self._token('date')
349
- self._enclosed_expression_()
350
- with self._optional():
351
- self._token('time')
352
- self._enclosed_expression_()
353
- self._error('no available options')
354
- with self._option():
355
- self._token('period-instant')
356
- self._cut()
357
- with self._group():
358
- with self._choice():
359
- with self._option():
360
- self._date_constant_()
361
- with self._option():
362
- self._date_time_constant_()
363
- with self._option():
364
- with self._group():
365
- self._token('date')
366
- self._enclosed_expression_()
367
- with self._optional():
368
- self._token('time')
369
- self._enclosed_expression_()
370
- self._error('no available options')
371
- with self._option():
372
- self._token('period')
373
- self._cut()
374
- self._enclosed_expression_()
375
- with self._option():
376
- self._token('instant-duration')
377
- self._cut()
378
- with self._group():
379
- with self._choice():
380
- with self._option():
381
- self._token('start')
382
- with self._option():
383
- self._token('end')
384
- self._error('no available options')
385
- self._variable_ref_()
386
- self._error('no available options')
387
- self._separator_()
388
-
389
- @tatsumasu()
390
- def _dimension_filter_(self):
391
- with self._optional():
392
- self._token('complemented')
393
- with self._group():
394
- with self._choice():
395
- with self._option():
396
- with self._group():
397
- self._token('explicit-dimension')
398
- self._cut()
399
- with self._group():
400
- with self._choice():
401
- with self._option():
402
- self._variable_ref_()
403
- with self._option():
404
- self._qname_()
405
- with self._option():
406
- self._localname_()
407
- with self._option():
408
- self._enclosed_expression_()
409
- self._error('no available options')
410
-
411
- def block1():
412
- with self._choice():
413
- with self._option():
414
- self._token('default-member')
415
- with self._option():
416
- self._token('member')
417
- self._cut()
418
- with self._group():
419
- with self._choice():
420
- with self._option():
421
- self._variable_ref_()
422
- with self._option():
423
- self._qname_()
424
- with self._option():
425
- self._localname_()
426
- with self._option():
427
- self._enclosed_expression_()
428
- self._error('no available options')
429
- with self._optional():
430
- self._token('linkrole')
431
- self._quoted_anyURI_()
432
- self._token('arcrole')
433
- self._quoted_anyURI_()
434
- self._token('axis')
435
- self._dimension_axis_()
436
- self._error('no available options')
437
- self._closure(block1)
438
- with self._option():
439
- with self._group():
440
- self._token('typed-dimension')
441
- self._cut()
442
- with self._group():
443
- with self._choice():
444
- with self._option():
445
- self._variable_ref_()
446
- with self._option():
447
- self._qname_()
448
- with self._option():
449
- self._localname_()
450
- with self._option():
451
- self._enclosed_expression_()
452
- self._error('no available options')
453
- with self._optional():
454
- self._token('test')
455
- self._enclosed_expression_()
456
- self._error('no available options')
457
- self._separator_()
458
-
459
- @tatsumasu()
460
- def _dimension_axis_(self):
461
- with self._choice():
462
- with self._option():
463
- self._token('child')
464
- with self._option():
465
- self._token('child-or-self')
466
- with self._option():
467
- self._token('descendant')
468
- with self._option():
469
- self._token('descendant-or-self')
470
- self._error('no available options')
471
-
472
- @tatsumasu()
473
- def _unit_filter_(self):
474
- with self._optional():
475
- self._token('complemented')
476
- with self._group():
477
- with self._choice():
478
- with self._option():
479
- self._token('unit-single-measure')
480
- self._cut()
481
- with self._group():
482
- with self._choice():
483
- with self._option():
484
- self._qname_()
485
- with self._option():
486
- self._enclosed_expression_()
487
- self._error('no available options')
488
- with self._option():
489
- self._token('unit-general-measures')
490
- self._cut()
491
- self._enclosed_expression_()
492
- self._error('no available options')
493
- self._separator_()
494
-
495
- @tatsumasu()
496
- def _entity_filter_(self):
497
- with self._optional():
498
- self._token('complemented')
499
- with self._group():
500
- with self._choice():
501
- with self._option():
502
- self._token('entity-scheme-pattern')
503
- self._cut()
504
- self._regexp_pattern_()
505
- with self._option():
506
- self._token('entity-scheme')
507
- self._cut()
508
- self._enclosed_expression_()
509
- with self._option():
510
- self._token('entity-identifier-pattern')
511
- self._cut()
512
- self._regexp_pattern_()
513
- with self._option():
514
- self._token('entity-identifier')
515
- self._cut()
516
- self._enclosed_expression_()
517
- with self._option():
518
- self._token('entity')
519
- self._cut()
520
- self._token('scheme')
521
- self._enclosed_expression_()
522
- self._token('value')
523
- self._enclosed_expression_()
524
- self._error('no available options')
525
- self._separator_()
526
-
527
- @tatsumasu()
528
- def _match_filter_(self):
529
- with self._optional():
530
- self._token('complemented')
531
- with self._group():
532
- with self._choice():
533
- with self._option():
534
- self._token('match-concept')
535
- self._cut()
536
- self._variable_ref_()
537
- with self._option():
538
- self._token('match-location')
539
- self._cut()
540
- self._variable_ref_()
541
- with self._option():
542
- self._token('match-entity-identifier')
543
- self._cut()
544
- self._variable_ref_()
545
- with self._option():
546
- self._token('match-period')
547
- self._cut()
548
- self._variable_ref_()
549
- with self._option():
550
- self._token('match-unit')
551
- self._cut()
552
- self._variable_ref_()
553
- with self._option():
554
- self._token('match-dimension')
555
- self._cut()
556
- self._variable_ref_()
557
- self._token('dimension')
558
- self._qname_()
559
- self._error('no available options')
560
- with self._optional():
561
- self._token('match-any')
562
- self._separator_()
563
-
564
- @tatsumasu()
565
- def _relative_filter_(self):
566
- with self._optional():
567
- self._token('complemented')
568
- self._token('relative')
569
- self._cut()
570
- self._variable_ref_()
571
- self._separator_()
572
-
573
- @tatsumasu()
574
- def _tuple_filter_(self):
575
- with self._optional():
576
- self._token('complemented')
577
- with self._group():
578
- with self._choice():
579
- with self._option():
580
- self._token('parent')
581
- self._cut()
582
- with self._group():
583
- with self._choice():
584
- with self._option():
585
- self._qname_()
586
- with self._option():
587
- self._enclosed_expression_()
588
- self._error('no available options')
589
- with self._option():
590
- self._token('ancestor')
591
- self._cut()
592
- with self._group():
593
- with self._choice():
594
- with self._option():
595
- self._qname_()
596
- with self._option():
597
- self._enclosed_expression_()
598
- self._error('no available options')
599
- with self._option():
600
- self._token('sibling')
601
- self._cut()
602
- self._variable_ref_()
603
- self._error('no available options')
604
- self._separator_()
605
-
606
- @tatsumasu()
607
- def _value_filter_(self):
608
- with self._optional():
609
- self._token('complemented')
610
- self._token('nilled')
611
- self._separator_()
612
-
613
- @tatsumasu()
614
- def _boolean_filter_(self):
615
- with self._optional():
616
- self._token('complemented')
617
- with self._group():
618
- with self._choice():
619
- with self._option():
620
- self._token('and')
621
- with self._option():
622
- self._token('or')
623
- self._error('no available options')
624
- self._cut()
625
- self._token('{')
626
-
627
- def block1():
628
- self._filter_()
629
- self._positive_closure(block1)
630
- self._token('}')
631
- self._separator_()
632
-
633
- @tatsumasu()
634
- def _aspect_cover_filter_(self):
635
- with self._optional():
636
- self._token('complemented')
637
- self._token('aspect-cover')
638
- self._cut()
639
-
640
- def block0():
641
- with self._choice():
642
- with self._option():
643
- self._token('all')
644
- with self._option():
645
- self._token('concept')
646
- with self._option():
647
- self._token('entity-identifier')
648
- with self._option():
649
- self._token('location')
650
- with self._option():
651
- self._token('period')
652
- with self._option():
653
- self._token('unit')
654
- with self._option():
655
- self._token('dimensions')
656
- with self._option():
657
- self._token('dimension')
658
- with self._group():
659
- with self._choice():
660
- with self._option():
661
- self._qname_()
662
- with self._option():
663
- self._localname_()
664
- with self._option():
665
- self._enclosed_expression_()
666
- self._error('no available options')
667
- with self._option():
668
- self._token('exclude-dimension')
669
- with self._group():
670
- with self._choice():
671
- with self._option():
672
- self._qname_()
673
- with self._option():
674
- self._localname_()
675
- with self._option():
676
- self._enclosed_expression_()
677
- self._error('no available options')
678
- self._error('no available options')
679
- self._positive_closure(block0)
680
- self._separator_()
681
-
682
- @tatsumasu()
683
- def _concept_relation_filter_(self):
684
- with self._optional():
685
- self._token('complemented')
686
- self._token('concept-relation')
687
- self._cut()
688
- with self._group():
689
- with self._choice():
690
- with self._option():
691
- self._variable_ref_()
692
- with self._option():
693
- self._qname_()
694
- with self._option():
695
- self._localname_()
696
- with self._option():
697
- self._enclosed_expression_()
698
- self._error('no available options')
699
- with self._optional():
700
- self._token('linkrole')
701
- with self._group():
702
- with self._choice():
703
- with self._option():
704
- self._quoted_anyURI_()
705
- with self._option():
706
- self._enclosed_expression_()
707
- self._error('no available options')
708
- with self._optional():
709
- self._token('arcrole')
710
- with self._group():
711
- with self._choice():
712
- with self._option():
713
- self._quoted_anyURI_()
714
- with self._option():
715
- self._enclosed_expression_()
716
- self._error('no available options')
717
- with self._optional():
718
- self._token('axis')
719
- self._relation_axis_()
720
- with self._optional():
721
- self._token('generations')
722
- self._non_negative_integer_()
723
- with self._optional():
724
- self._token('test')
725
- self._enclosed_expression_()
726
- self._separator_()
727
-
728
- @tatsumasu()
729
- def _relation_axis_(self):
730
- with self._group():
731
- with self._choice():
732
- with self._option():
733
- self._token('child-or-self')
734
- with self._option():
735
- self._token('child')
736
- with self._option():
737
- self._token('descendant-or-self')
738
- with self._option():
739
- self._token('descendant')
740
- with self._option():
741
- self._token('parent-or-self')
742
- with self._option():
743
- self._token('parent')
744
- with self._option():
745
- self._token('ancestor-or-self')
746
- with self._option():
747
- self._token('ancestor')
748
- with self._option():
749
- self._token('sibling-or-self')
750
- with self._option():
751
- self._token('sibling-or-descendant')
752
- with self._option():
753
- self._token('sibling')
754
- self._error('no available options')
755
- self._separator_()
756
-
757
- @tatsumasu()
758
- def _declared_filter_reference_(self):
759
- self._token('filter')
760
- self._cut()
761
- self._variable_ref_()
762
- self._separator_()
763
-
764
- @tatsumasu()
765
- def _fact_variable_(self):
766
- self._token('variable')
767
- self._cut()
768
- self._variable_ref_()
769
- self._token('{')
770
- with self._optional():
771
- self._token('bind-as-sequence')
772
- with self._optional():
773
- self._token('nils')
774
- with self._optional():
775
- self._token('matches')
776
- with self._optional():
777
- self._token('fallback')
778
- self._enclosed_expression_()
779
-
780
- def block0():
781
- self._filter_()
782
- self._closure(block0)
783
- self._token('}')
784
- self._separator_()
785
-
786
- @tatsumasu()
787
- def _general_variable_(self):
788
- self._token('variable')
789
- self._cut()
790
- self._variable_ref_()
791
- self._token('{')
792
- with self._optional():
793
- self._token('bind-as-sequence')
794
- self._token('select')
795
- self._enclosed_expression_()
796
- self._token('}')
797
- self._separator_()
798
-
799
- @tatsumasu()
800
- def _function_declaration_(self):
801
- self._token('function')
802
- self._cut()
803
- self._qname_()
804
- self._token('(')
805
-
806
- def block0():
807
- self._NCNAME_FRAG_()
808
- self._token('as')
809
- self._qname_()
810
- self._closure(block0)
811
- self._token(')')
812
- self._token('as')
813
- self._qname_()
814
- with self._optional():
815
- self._token('{')
816
- self._token('return')
817
- self._enclosed_expression_()
818
- self._separator_()
819
- self._token('}')
820
- self._separator_()
821
-
822
- @tatsumasu()
823
- def _assertion_(self):
824
- self._token('assertion')
825
- self._name_()
826
- self._token('{')
827
-
828
- def block0():
829
- with self._choice():
830
- with self._option():
831
- self._label_()
832
- with self._option():
833
- self._message_()
834
- with self._option():
835
- self._severity_()
836
- with self._option():
837
- self._token('aspect-model-non-dimensional')
838
- self._separator_()
839
- with self._option():
840
- self._token('no-implicit-filtering')
841
- self._separator_()
842
- self._error('no available options')
843
- self._closure(block0)
844
-
845
- def block2():
846
- self._filter_()
847
- self._closure(block2)
848
-
849
- def block3():
850
- with self._choice():
851
- with self._option():
852
- self._fact_variable_()
853
- with self._option():
854
- self._general_variable_()
855
- with self._option():
856
- self._referenced_parameter_()
857
- self._error('no available options')
858
- self._closure(block3)
859
-
860
- def block5():
861
- self._precondition_()
862
- self._closure(block5)
863
- with self._group():
864
- with self._choice():
865
- with self._option():
866
- self._value_expression_()
867
- with self._option():
868
- self._existence_expression_()
869
- self._error('no available options')
870
- self._token('}')
871
- self._separator_()
872
-
873
- @tatsumasu()
874
- def _label_(self):
875
- self._token('label')
876
- with self._optional():
877
- self._token('(')
878
- self._language_()
879
- self._token(')')
880
- self._quoted_string_()
881
- self._separator_()
882
-
883
- @tatsumasu()
884
- def _message_(self):
885
- with self._group():
886
- with self._choice():
887
- with self._option():
888
- self._token('satisfied-message')
889
- with self._option():
890
- self._token('unsatisfied-message')
891
- self._error('no available options')
892
- self._cut()
893
- with self._optional():
894
- self._token('(')
895
- self._cut()
896
- self._language_()
897
- self._token(')')
898
- self._quoted_string_()
899
- self._separator_()
900
-
901
- @tatsumasu()
902
- def _referenced_parameter_(self):
903
- self._token('parameter')
904
- self._cut()
905
- self._variable_ref_()
906
- self._token('references')
907
- self._qname_()
908
- self._separator_()
909
-
910
- @tatsumasu()
911
- def _precondition_(self):
912
- self._token('precondition')
913
- self._enclosed_expression_()
914
-
915
- @tatsumasu()
916
- def _value_expression_(self):
917
- self._token('test')
918
- self._enclosed_expression_()
919
- self._separator_()
920
-
921
- @tatsumasu()
922
- def _existence_expression_(self):
923
- self._token('evaluation-count')
924
- self._enclosed_expression_()
925
- self._separator_()
926
-
927
- @tatsumasu()
928
- def _enclosed_expression_(self):
929
- self._token('{')
930
- self._xPath_()
931
- self._token('}')
932
-
933
- @tatsumasu()
934
- def _name_(self):
935
- self._NCNAME_FRAG_()
936
-
937
- @tatsumasu()
938
- def _language_(self):
939
- self._pattern(r'[A-Za-z]{2}(-[A-Za-z]{2})?')
940
-
941
- @tatsumasu()
942
- def _quoted_anyURI_(self):
943
- self._quoted_url_()
944
-
945
- @tatsumasu()
946
- def _quoted_url_(self):
947
- self._quoted_string_()
948
-
949
- @tatsumasu()
950
- def _localname_(self):
951
- self._name_()
952
-
953
- @tatsumasu()
954
- def _variable_ref_(self):
955
- self._token('$')
956
- self._variable_name_()
957
-
958
- @tatsumasu()
959
- def _variable_name_(self):
960
- self._name_()
961
-
962
- @tatsumasu()
963
- def _non_negative_integer_(self):
964
- self._pattern(r'[0-9]+')
965
-
966
- @tatsumasu()
967
- def _date_time_constant_(self):
968
- self._pattern(r'\b(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]+)?(Z)?\b')
969
-
970
- @tatsumasu()
971
- def _date_constant_(self):
972
- self._pattern(r'\b(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])\b')
973
-
974
- @tatsumasu()
975
- def _quoted_string_(self):
976
- self._pattern(r'("([^\\"]|\\.)*"|\'([^\\\']|\\.)*\')')
977
-
978
- @tatsumasu()
979
- def _regexp_pattern_(self):
980
- self._pattern(r'\/([^\\\/]|\\.)*\/')
981
-
982
- @tatsumasu()
983
- def _xPath_(self):
984
- self._expr_()
985
-
986
- @tatsumasu()
987
- def _expr_(self):
988
- self._exprSingle_()
989
-
990
- def block0():
991
- self._token(',')
992
- self._exprSingle_()
993
- self._closure(block0)
994
-
995
- @tatsumasu()
996
- def _exprSingle_(self):
997
- with self._choice():
998
- with self._option():
999
- self._forExpr_()
1000
- with self._option():
1001
- self._quantifiedExpr_()
1002
- with self._option():
1003
- self._ifExpr_()
1004
- with self._option():
1005
- self._orExpr_()
1006
- self._error('no available options')
1007
-
1008
- @tatsumasu()
1009
- def _forExpr_(self):
1010
- self._simpleForClause_()
1011
- self._token('return')
1012
- self._exprSingle_()
1013
-
1014
- @tatsumasu()
1015
- def _simpleForClause_(self):
1016
- self._token('for')
1017
- self._token('$')
1018
- self._varName_()
1019
- self._token('in')
1020
- self._exprSingle_()
1021
-
1022
- def block0():
1023
- self._token(',')
1024
- self._token('$')
1025
- self._varName_()
1026
- self._token('in')
1027
- self._exprSingle_()
1028
- self._closure(block0)
1029
-
1030
- @tatsumasu()
1031
- def _quantifiedExpr_(self):
1032
- with self._group():
1033
- with self._choice():
1034
- with self._option():
1035
- self._token('some')
1036
- with self._option():
1037
- self._token('every')
1038
- self._error('no available options')
1039
- self._token('$')
1040
- self._varName_()
1041
- self._token('in')
1042
- self._exprSingle_()
1043
-
1044
- def block1():
1045
- self._token(',')
1046
- self._token('$')
1047
- self._varName_()
1048
- self._token('in')
1049
- self._exprSingle_()
1050
- self._closure(block1)
1051
- self._token('satisfies')
1052
- self._exprSingle_()
1053
-
1054
- @tatsumasu()
1055
- def _ifExpr_(self):
1056
- self._token('if')
1057
- self._token('(')
1058
- self._expr_()
1059
- self._token(')')
1060
- self._token('then')
1061
- self._exprSingle_()
1062
- self._token('else')
1063
- self._exprSingle_()
1064
-
1065
- @tatsumasu()
1066
- def _orExpr_(self):
1067
- self._andExpr_()
1068
-
1069
- def block0():
1070
- self._token('or')
1071
- self._andExpr_()
1072
- self._closure(block0)
1073
-
1074
- @tatsumasu()
1075
- def _andExpr_(self):
1076
- self._comparisonExpr_()
1077
-
1078
- def block0():
1079
- self._token('and')
1080
- self._comparisonExpr_()
1081
- self._closure(block0)
1082
-
1083
- @tatsumasu()
1084
- def _comparisonExpr_(self):
1085
- self._rangeExpr_()
1086
- with self._optional():
1087
- with self._group():
1088
- with self._choice():
1089
- with self._option():
1090
- self._valueComp_()
1091
- with self._option():
1092
- self._nodeComp_()
1093
- with self._option():
1094
- self._generalComp_()
1095
- self._error('no available options')
1096
- self._rangeExpr_()
1097
-
1098
- @tatsumasu()
1099
- def _rangeExpr_(self):
1100
- self._additiveExpr_()
1101
- with self._optional():
1102
- self._token('to')
1103
- self._additiveExpr_()
1104
-
1105
- @tatsumasu()
1106
- def _additiveExpr_(self):
1107
- self._multiplicativeExpr_()
1108
-
1109
- def block0():
1110
- with self._group():
1111
- with self._choice():
1112
- with self._option():
1113
- self._token('+')
1114
- with self._option():
1115
- self._token('-')
1116
- self._error('no available options')
1117
- self._multiplicativeExpr_()
1118
- self._closure(block0)
1119
-
1120
- @tatsumasu()
1121
- def _multiplicativeExpr_(self):
1122
- self._unionExpr_()
1123
-
1124
- def block0():
1125
- with self._group():
1126
- with self._choice():
1127
- with self._option():
1128
- self._token('*')
1129
- with self._option():
1130
- self._token('div')
1131
- with self._option():
1132
- self._token('idiv')
1133
- with self._option():
1134
- self._token('mod')
1135
- self._error('no available options')
1136
- self._unionExpr_()
1137
- self._closure(block0)
1138
-
1139
- @tatsumasu()
1140
- def _unionExpr_(self):
1141
- self._intersectExceptExpr_()
1142
-
1143
- def block0():
1144
- with self._group():
1145
- with self._choice():
1146
- with self._option():
1147
- self._token('union')
1148
- with self._option():
1149
- self._token('|')
1150
- self._error('no available options')
1151
- self._intersectExceptExpr_()
1152
- self._closure(block0)
1153
-
1154
- @tatsumasu()
1155
- def _intersectExceptExpr_(self):
1156
- self._instanceofExpr_()
1157
-
1158
- def block0():
1159
- with self._group():
1160
- with self._choice():
1161
- with self._option():
1162
- self._token('intersect')
1163
- with self._option():
1164
- self._token('except')
1165
- self._error('no available options')
1166
- self._instanceofExpr_()
1167
- self._closure(block0)
1168
-
1169
- @tatsumasu()
1170
- def _instanceofExpr_(self):
1171
- self._treatExpr_()
1172
- with self._optional():
1173
- self._token('instance')
1174
- self._token('of')
1175
- self._sequenceType_()
1176
-
1177
- @tatsumasu()
1178
- def _treatExpr_(self):
1179
- self._castableExpr_()
1180
- with self._optional():
1181
- self._token('treat')
1182
- self._token('as')
1183
- self._sequenceType_()
1184
-
1185
- @tatsumasu()
1186
- def _castableExpr_(self):
1187
- self._castExpr_()
1188
- with self._optional():
1189
- self._token('castable')
1190
- self._token('as')
1191
- self._singleType_()
1192
-
1193
- @tatsumasu()
1194
- def _castExpr_(self):
1195
- self._unaryExpr_()
1196
- with self._optional():
1197
- self._token('cast')
1198
- self._token('as')
1199
- self._singleType_()
1200
-
1201
- @tatsumasu()
1202
- def _unaryExpr_(self):
1203
-
1204
- def block0():
1205
- with self._choice():
1206
- with self._option():
1207
- self._token('-')
1208
- with self._option():
1209
- self._token('+')
1210
- self._error('no available options')
1211
- self._closure(block0)
1212
- self._valueExpr_()
1213
-
1214
- @tatsumasu()
1215
- def _valueExpr_(self):
1216
- self._pathExpr_()
1217
-
1218
- @tatsumasu()
1219
- def _generalComp_(self):
1220
- with self._choice():
1221
- with self._option():
1222
- self._token('=')
1223
- with self._option():
1224
- self._token('!=')
1225
- with self._option():
1226
- self._token('<=')
1227
- with self._option():
1228
- self._token('<')
1229
- with self._option():
1230
- self._token('>=')
1231
- with self._option():
1232
- self._token('>')
1233
- self._error('no available options')
1234
-
1235
- @tatsumasu()
1236
- def _valueComp_(self):
1237
- with self._choice():
1238
- with self._option():
1239
- self._token('eq')
1240
- with self._option():
1241
- self._token('ne')
1242
- with self._option():
1243
- self._token('lt')
1244
- with self._option():
1245
- self._token('le')
1246
- with self._option():
1247
- self._token('gt')
1248
- with self._option():
1249
- self._token('ge')
1250
- self._error('no available options')
1251
-
1252
- @tatsumasu()
1253
- def _nodeComp_(self):
1254
- with self._choice():
1255
- with self._option():
1256
- self._token('is')
1257
- with self._option():
1258
- self._token('<<')
1259
- with self._option():
1260
- self._token('>>')
1261
- self._error('no available options')
1262
-
1263
- @tatsumasu()
1264
- def _pathExpr_(self):
1265
- with self._choice():
1266
- with self._option():
1267
- with self._group():
1268
- self._token('//')
1269
- self._relativePathExpr_()
1270
- with self._option():
1271
- with self._group():
1272
- self._token('/')
1273
- with self._optional():
1274
- self._relativePathExpr_()
1275
- with self._option():
1276
- self._relativePathExpr_()
1277
- self._error('no available options')
1278
-
1279
- @tatsumasu()
1280
- def _relativePathExpr_(self):
1281
- self._stepExpr_()
1282
-
1283
- def block0():
1284
- with self._group():
1285
- with self._choice():
1286
- with self._option():
1287
- self._token('/')
1288
- with self._option():
1289
- self._token('//')
1290
- self._error('no available options')
1291
- self._stepExpr_()
1292
- self._closure(block0)
1293
-
1294
- @tatsumasu()
1295
- def _stepExpr_(self):
1296
- with self._choice():
1297
- with self._option():
1298
- self._filterExpr_()
1299
- with self._option():
1300
- self._axisStep_()
1301
- self._error('no available options')
1302
-
1303
- @tatsumasu()
1304
- def _axisStep_(self):
1305
- with self._group():
1306
- with self._choice():
1307
- with self._option():
1308
- self._reverseStep_()
1309
- with self._option():
1310
- self._forwardStep_()
1311
- self._error('no available options')
1312
- self._predicateList_()
1313
-
1314
- @tatsumasu()
1315
- def _forwardStep_(self):
1316
- with self._choice():
1317
- with self._option():
1318
- with self._group():
1319
- self._forwardAxis_()
1320
- self._nodeTest_()
1321
- with self._option():
1322
- self._abbrevForwardStep_()
1323
- self._error('no available options')
1324
-
1325
- @tatsumasu()
1326
- def _forwardAxis_(self):
1327
- with self._choice():
1328
- with self._option():
1329
- with self._group():
1330
- self._token('child')
1331
- self._token('::')
1332
- with self._option():
1333
- with self._group():
1334
- self._token('descendant')
1335
- self._token('::')
1336
- with self._option():
1337
- with self._group():
1338
- self._token('attribute')
1339
- self._token('::')
1340
- with self._option():
1341
- with self._group():
1342
- self._token('self')
1343
- self._token('::')
1344
- with self._option():
1345
- with self._group():
1346
- self._token('descendant-or-self')
1347
- self._token('::')
1348
- with self._option():
1349
- with self._group():
1350
- self._token('following-sibling')
1351
- self._token('::')
1352
- with self._option():
1353
- with self._group():
1354
- self._token('following')
1355
- self._token('::')
1356
- with self._option():
1357
- with self._group():
1358
- self._token('namespace')
1359
- self._token('::')
1360
- self._error('no available options')
1361
-
1362
- @tatsumasu()
1363
- def _abbrevForwardStep_(self):
1364
- with self._optional():
1365
- self._token('@')
1366
- self._nodeTest_()
1367
-
1368
- @tatsumasu()
1369
- def _reverseStep_(self):
1370
- with self._choice():
1371
- with self._option():
1372
- with self._group():
1373
- self._reverseAxis_()
1374
- self._nodeTest_()
1375
- with self._option():
1376
- self._abbrevReverseStep_()
1377
- self._error('no available options')
1378
-
1379
- @tatsumasu()
1380
- def _reverseAxis_(self):
1381
- with self._choice():
1382
- with self._option():
1383
- with self._group():
1384
- self._token('parent')
1385
- self._token('::')
1386
- with self._option():
1387
- with self._group():
1388
- self._token('ancestor')
1389
- self._token('::')
1390
- with self._option():
1391
- with self._group():
1392
- self._token('preceding-sibling')
1393
- self._token('::')
1394
- with self._option():
1395
- with self._group():
1396
- self._token('preceding')
1397
- self._token('::')
1398
- with self._option():
1399
- with self._group():
1400
- self._token('ancestor-or-self')
1401
- self._token('::')
1402
- self._error('no available options')
1403
-
1404
- @tatsumasu()
1405
- def _abbrevReverseStep_(self):
1406
- self._token('..')
1407
-
1408
- @tatsumasu()
1409
- def _nodeTest_(self):
1410
- with self._choice():
1411
- with self._option():
1412
- self._kindTest_()
1413
- with self._option():
1414
- self._nameTest_()
1415
- self._error('no available options')
1416
-
1417
- @tatsumasu()
1418
- def _nameTest_(self):
1419
- with self._choice():
1420
- with self._option():
1421
- self._qname_()
1422
- with self._option():
1423
- self._wildcard_()
1424
- self._error('no available options')
1425
-
1426
- @tatsumasu()
1427
- def _wildcard_(self):
1428
- with self._choice():
1429
- with self._option():
1430
- self._token('*')
1431
- with self._option():
1432
- with self._group():
1433
- self._ncname_()
1434
- self._token(':')
1435
- self._token('*')
1436
- with self._option():
1437
- with self._group():
1438
- self._token('*')
1439
- self._token(':')
1440
- self._ncname_()
1441
- self._error('no available options')
1442
-
1443
- @tatsumasu()
1444
- def _filterExpr_(self):
1445
- self._primaryExpr_()
1446
- self._predicateList_()
1447
-
1448
- @tatsumasu()
1449
- def _predicateList_(self):
1450
-
1451
- def block0():
1452
- self._predicate_()
1453
- self._closure(block0)
1454
-
1455
- @tatsumasu()
1456
- def _predicate_(self):
1457
- self._token('[')
1458
- self._expr_()
1459
- self._token(']')
1460
-
1461
- @tatsumasu()
1462
- def _primaryExpr_(self):
1463
- with self._choice():
1464
- with self._option():
1465
- self._literal_()
1466
- with self._option():
1467
- self._varRef_()
1468
- with self._option():
1469
- self._parenthesizedExpr_()
1470
- with self._option():
1471
- self._contextItemExpr_()
1472
- with self._option():
1473
- self._functionCall_()
1474
- self._error('no available options')
1475
-
1476
- @tatsumasu()
1477
- def _literal_(self):
1478
- with self._choice():
1479
- with self._option():
1480
- self._numericLiteral_()
1481
- with self._option():
1482
- self._stringLiteral_()
1483
- self._error('no available options')
1484
-
1485
- @tatsumasu()
1486
- def _numericLiteral_(self):
1487
- with self._choice():
1488
- with self._option():
1489
- self._integerLiteral_()
1490
- with self._option():
1491
- self._decimalLiteral_()
1492
- with self._option():
1493
- self._doubleLiteral_()
1494
- self._error('no available options')
1495
-
1496
- @tatsumasu()
1497
- def _varRef_(self):
1498
- self._token('$')
1499
- self._varName_()
1500
-
1501
- @tatsumasu()
1502
- def _varName_(self):
1503
- self._qname_()
1504
-
1505
- @tatsumasu()
1506
- def _parenthesizedExpr_(self):
1507
- self._token('(')
1508
- with self._optional():
1509
- self._expr_()
1510
- self._token(')')
1511
-
1512
- @tatsumasu()
1513
- def _contextItemExpr_(self):
1514
- self._token('.')
1515
-
1516
- @tatsumasu()
1517
- def _functionCall_(self):
1518
- self._qname_()
1519
- self._token('(')
1520
- with self._optional():
1521
- self._exprSingle_()
1522
-
1523
- def block0():
1524
- self._token(',')
1525
- self._exprSingle_()
1526
- self._closure(block0)
1527
- self._token(')')
1528
-
1529
- @tatsumasu()
1530
- def _singleType_(self):
1531
- self._atomicType_()
1532
- with self._optional():
1533
- self._token('?')
1534
-
1535
- @tatsumasu()
1536
- def _sequenceType_(self):
1537
- with self._choice():
1538
- with self._option():
1539
- with self._group():
1540
- self._token('empty-sequence')
1541
- self._token('(')
1542
- self._token(')')
1543
- with self._option():
1544
- with self._group():
1545
- self._itemType_()
1546
- with self._optional():
1547
- self._occurrenceIndicator_()
1548
- self._error('no available options')
1549
-
1550
- @tatsumasu()
1551
- def _occurrenceIndicator_(self):
1552
- with self._choice():
1553
- with self._option():
1554
- self._token('?')
1555
- with self._option():
1556
- self._token('*')
1557
- with self._option():
1558
- self._token('+')
1559
- self._error('no available options')
1560
-
1561
- @tatsumasu()
1562
- def _itemType_(self):
1563
- with self._choice():
1564
- with self._option():
1565
- self._kindTest_()
1566
- with self._option():
1567
- with self._group():
1568
- self._token('item')
1569
- self._token('(')
1570
- self._token(')')
1571
- with self._option():
1572
- self._atomicType_()
1573
- self._error('no available options')
1574
-
1575
- @tatsumasu()
1576
- def _atomicType_(self):
1577
- self._qname_()
1578
-
1579
- @tatsumasu()
1580
- def _kindTest_(self):
1581
- with self._choice():
1582
- with self._option():
1583
- self._documentTest_()
1584
- with self._option():
1585
- self._elementTest_()
1586
- with self._option():
1587
- self._attributeTest_()
1588
- with self._option():
1589
- self._schemaElementTest_()
1590
- with self._option():
1591
- self._schemaAttributeTest_()
1592
- with self._option():
1593
- self._pITest_()
1594
- with self._option():
1595
- self._commentTest_()
1596
- with self._option():
1597
- self._textTest_()
1598
- with self._option():
1599
- self._anyKindTest_()
1600
- self._error('no available options')
1601
-
1602
- @tatsumasu()
1603
- def _anyKindTest_(self):
1604
- self._token('node')
1605
- self._token('(')
1606
- self._token(')')
1607
-
1608
- @tatsumasu()
1609
- def _documentTest_(self):
1610
- self._token('document-node')
1611
- self._token('(')
1612
- with self._optional():
1613
- with self._choice():
1614
- with self._option():
1615
- self._elementTest_()
1616
- with self._option():
1617
- self._schemaElementTest_()
1618
- self._error('no available options')
1619
- self._token(')')
1620
-
1621
- @tatsumasu()
1622
- def _textTest_(self):
1623
- self._token('text')
1624
- self._token('(')
1625
- self._token(')')
1626
-
1627
- @tatsumasu()
1628
- def _commentTest_(self):
1629
- self._token('comment')
1630
- self._token('(')
1631
- self._token(')')
1632
-
1633
- @tatsumasu()
1634
- def _pITest_(self):
1635
- self._token('processing-instruction')
1636
- self._token('(')
1637
- with self._optional():
1638
- with self._choice():
1639
- with self._option():
1640
- self._ncname_()
1641
- with self._option():
1642
- self._stringLiteral_()
1643
- self._error('no available options')
1644
- self._token(')')
1645
-
1646
- @tatsumasu()
1647
- def _attributeTest_(self):
1648
- self._token('attribute')
1649
- self._token('(')
1650
- with self._optional():
1651
- self._attribNameOrWildcard_()
1652
- with self._optional():
1653
- self._token(',')
1654
- self._typeName_()
1655
- self._token(')')
1656
-
1657
- @tatsumasu()
1658
- def _attribNameOrWildcard_(self):
1659
- with self._choice():
1660
- with self._option():
1661
- self._attributeName_()
1662
- with self._option():
1663
- self._token('*')
1664
- self._error('no available options')
1665
-
1666
- @tatsumasu()
1667
- def _schemaAttributeTest_(self):
1668
- self._token('schema-attribute')
1669
- self._token('(')
1670
- self._attributeDeclaration_()
1671
- self._token(')')
1672
-
1673
- @tatsumasu()
1674
- def _attributeDeclaration_(self):
1675
- self._attributeName_()
1676
-
1677
- @tatsumasu()
1678
- def _elementTest_(self):
1679
- self._token('element')
1680
- self._token('(')
1681
- with self._optional():
1682
- self._elementNameOrWildcard_()
1683
- with self._optional():
1684
- self._token(',')
1685
- self._typeName_()
1686
- with self._optional():
1687
- self._token('?')
1688
- self._token(')')
1689
-
1690
- @tatsumasu()
1691
- def _elementNameOrWildcard_(self):
1692
- with self._choice():
1693
- with self._option():
1694
- self._elementName_()
1695
- with self._option():
1696
- self._token('*')
1697
- self._error('no available options')
1698
-
1699
- @tatsumasu()
1700
- def _schemaElementTest_(self):
1701
- self._token('schema-element')
1702
- self._token('(')
1703
- self._elementDeclaration_()
1704
- self._token(')')
1705
-
1706
- @tatsumasu()
1707
- def _elementDeclaration_(self):
1708
- self._elementName_()
1709
-
1710
- @tatsumasu()
1711
- def _attributeName_(self):
1712
- self._qname_()
1713
-
1714
- @tatsumasu()
1715
- def _elementName_(self):
1716
- self._qname_()
1717
-
1718
- @tatsumasu()
1719
- def _typeName_(self):
1720
- self._qname_()
1721
-
1722
- @tatsumasu()
1723
- def _integerLiteral_(self):
1724
- self._DIGITS_()
1725
-
1726
- @tatsumasu()
1727
- def _decimalLiteral_(self):
1728
- with self._choice():
1729
- with self._option():
1730
- with self._group():
1731
- self._token('.')
1732
- self._DIGITS_()
1733
- with self._option():
1734
- with self._group():
1735
- self._DIGITS_()
1736
- self._pattern(r'\.[0-9]*')
1737
- self._error('no available options')
1738
-
1739
- @tatsumasu()
1740
- def _doubleLiteral_(self):
1741
- with self._group():
1742
- with self._choice():
1743
- with self._option():
1744
- with self._group():
1745
- self._token('.')
1746
- self._DIGITS_()
1747
- with self._option():
1748
- with self._group():
1749
- self._DIGITS_()
1750
- self._pattern(r'(\.[0-9]*)?')
1751
- self._error('no available options')
1752
- self._pattern(r'[eE][+-]?')
1753
- self._DIGITS_()
1754
-
1755
- @tatsumasu()
1756
- def _stringLiteral_(self):
1757
- with self._choice():
1758
- with self._option():
1759
- with self._group():
1760
- self._pattern(r'"')
1761
-
1762
- def block0():
1763
- with self._choice():
1764
- with self._option():
1765
- self._ESCAPEQUOT_()
1766
- with self._option():
1767
- self._pattern(r'[^"]')
1768
- self._error('no available options')
1769
- self._closure(block0)
1770
- self._pattern(r'"')
1771
- with self._option():
1772
- with self._group():
1773
- self._pattern(r"'")
1774
-
1775
- def block2():
1776
- with self._choice():
1777
- with self._option():
1778
- self._ESCAPEAPOS_()
1779
- with self._option():
1780
- self._pattern(r"[^']")
1781
- self._error('no available options')
1782
- self._closure(block2)
1783
- self._pattern(r"'")
1784
- self._error('no available options')
1785
-
1786
- @tatsumasu()
1787
- def _ESCAPEQUOT_(self):
1788
- self._token('""')
1789
-
1790
- @tatsumasu()
1791
- def _ESCAPEAPOS_(self):
1792
- self._token("''")
1793
-
1794
- @tatsumasu()
1795
- def _qname_(self):
1796
- with self._choice():
1797
- with self._option():
1798
- with self._group():
1799
- self._NCNAME_FRAG_()
1800
- self._pattern(r':')
1801
- self._NCNAME_FRAG_()
1802
- with self._option():
1803
- self._NCNAME_FRAG_()
1804
- self._error('no available options')
1805
-
1806
- @tatsumasu()
1807
- def _ncname_(self):
1808
- self._NCNAME_FRAG_()
1809
-
1810
- @tatsumasu()
1811
- def _NCNAME_FRAG_(self):
1812
- self._pattern(r'([A-Z]|_|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\U00010000-\U000EFFFF])([A-Z]|_|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|[\U00010000-\U000EFFFF]|-|\.|[0-9]|\u00B7|[\u0300-\u036F]|[\u203F-\u2040])*')
1813
-
1814
- @tatsumasu()
1815
- def _DIGITS_(self):
1816
- self._pattern(r'[0-9]+')
1817
-
1818
-
1819
- class XFSemantics(object):
1820
- def module(self, ast):
1821
- return ast
1822
-
1823
- def separator(self, ast):
1824
- return ast
1825
-
1826
- def namespace_declaration(self, ast):
1827
- return ast
1828
-
1829
- def default(self, ast):
1830
- return ast
1831
-
1832
- def severity(self, ast):
1833
- return ast
1834
-
1835
- def message_severity(self, ast):
1836
- return ast
1837
-
1838
- def parameter(self, ast):
1839
- return ast
1840
-
1841
- def filter_declaration(self, ast):
1842
- return ast
1843
-
1844
- def filter(self, ast):
1845
- return ast
1846
-
1847
- def concept_filter(self, ast):
1848
- return ast
1849
-
1850
- def general_filter(self, ast):
1851
- return ast
1852
-
1853
- def period_filter(self, ast):
1854
- return ast
1855
-
1856
- def dimension_filter(self, ast):
1857
- return ast
1858
-
1859
- def dimension_axis(self, ast):
1860
- return ast
1861
-
1862
- def unit_filter(self, ast):
1863
- return ast
1864
-
1865
- def entity_filter(self, ast):
1866
- return ast
1867
-
1868
- def match_filter(self, ast):
1869
- return ast
1870
-
1871
- def relative_filter(self, ast):
1872
- return ast
1873
-
1874
- def tuple_filter(self, ast):
1875
- return ast
1876
-
1877
- def value_filter(self, ast):
1878
- return ast
1879
-
1880
- def boolean_filter(self, ast):
1881
- return ast
1882
-
1883
- def aspect_cover_filter(self, ast):
1884
- return ast
1885
-
1886
- def concept_relation_filter(self, ast):
1887
- return ast
1888
-
1889
- def relation_axis(self, ast):
1890
- return ast
1891
-
1892
- def declared_filter_reference(self, ast):
1893
- return ast
1894
-
1895
- def fact_variable(self, ast):
1896
- return ast
1897
-
1898
- def general_variable(self, ast):
1899
- return ast
1900
-
1901
- def function_declaration(self, ast):
1902
- return ast
1903
-
1904
- def assertion(self, ast):
1905
- return ast
1906
-
1907
- def label(self, ast):
1908
- return ast
1909
-
1910
- def message(self, ast):
1911
- return ast
1912
-
1913
- def referenced_parameter(self, ast):
1914
- return ast
1915
-
1916
- def precondition(self, ast):
1917
- return ast
1918
-
1919
- def value_expression(self, ast):
1920
- return ast
1921
-
1922
- def existence_expression(self, ast):
1923
- return ast
1924
-
1925
- def enclosed_expression(self, ast):
1926
- return ast
1927
-
1928
- def name(self, ast):
1929
- return ast
1930
-
1931
- def language(self, ast):
1932
- return ast
1933
-
1934
- def quoted_anyURI(self, ast):
1935
- return ast
1936
-
1937
- def quoted_url(self, ast):
1938
- return ast
1939
-
1940
- def localname(self, ast):
1941
- return ast
1942
-
1943
- def variable_ref(self, ast):
1944
- return ast
1945
-
1946
- def variable_name(self, ast):
1947
- return ast
1948
-
1949
- def non_negative_integer(self, ast):
1950
- return ast
1951
-
1952
- def date_time_constant(self, ast):
1953
- return ast
1954
-
1955
- def date_constant(self, ast):
1956
- return ast
1957
-
1958
- def quoted_string(self, ast):
1959
- return ast
1960
-
1961
- def regexp_pattern(self, ast):
1962
- return ast
1963
-
1964
- def xPath(self, ast):
1965
- return ast
1966
-
1967
- def expr(self, ast):
1968
- return ast
1969
-
1970
- def exprSingle(self, ast):
1971
- return ast
1972
-
1973
- def forExpr(self, ast):
1974
- return ast
1975
-
1976
- def simpleForClause(self, ast):
1977
- return ast
1978
-
1979
- def quantifiedExpr(self, ast):
1980
- return ast
1981
-
1982
- def ifExpr(self, ast):
1983
- return ast
1984
-
1985
- def orExpr(self, ast):
1986
- return ast
1987
-
1988
- def andExpr(self, ast):
1989
- return ast
1990
-
1991
- def comparisonExpr(self, ast):
1992
- return ast
1993
-
1994
- def rangeExpr(self, ast):
1995
- return ast
1996
-
1997
- def additiveExpr(self, ast):
1998
- return ast
1999
-
2000
- def multiplicativeExpr(self, ast):
2001
- return ast
2002
-
2003
- def unionExpr(self, ast):
2004
- return ast
2005
-
2006
- def intersectExceptExpr(self, ast):
2007
- return ast
2008
-
2009
- def instanceofExpr(self, ast):
2010
- return ast
2011
-
2012
- def treatExpr(self, ast):
2013
- return ast
2014
-
2015
- def castableExpr(self, ast):
2016
- return ast
2017
-
2018
- def castExpr(self, ast):
2019
- return ast
2020
-
2021
- def unaryExpr(self, ast):
2022
- return ast
2023
-
2024
- def valueExpr(self, ast):
2025
- return ast
2026
-
2027
- def generalComp(self, ast):
2028
- return ast
2029
-
2030
- def valueComp(self, ast):
2031
- return ast
2032
-
2033
- def nodeComp(self, ast):
2034
- return ast
2035
-
2036
- def pathExpr(self, ast):
2037
- return ast
2038
-
2039
- def relativePathExpr(self, ast):
2040
- return ast
2041
-
2042
- def stepExpr(self, ast):
2043
- return ast
2044
-
2045
- def axisStep(self, ast):
2046
- return ast
2047
-
2048
- def forwardStep(self, ast):
2049
- return ast
2050
-
2051
- def forwardAxis(self, ast):
2052
- return ast
2053
-
2054
- def abbrevForwardStep(self, ast):
2055
- return ast
2056
-
2057
- def reverseStep(self, ast):
2058
- return ast
2059
-
2060
- def reverseAxis(self, ast):
2061
- return ast
2062
-
2063
- def abbrevReverseStep(self, ast):
2064
- return ast
2065
-
2066
- def nodeTest(self, ast):
2067
- return ast
2068
-
2069
- def nameTest(self, ast):
2070
- return ast
2071
-
2072
- def wildcard(self, ast):
2073
- return ast
2074
-
2075
- def filterExpr(self, ast):
2076
- return ast
2077
-
2078
- def predicateList(self, ast):
2079
- return ast
2080
-
2081
- def predicate(self, ast):
2082
- return ast
2083
-
2084
- def primaryExpr(self, ast):
2085
- return ast
2086
-
2087
- def literal(self, ast):
2088
- return ast
2089
-
2090
- def numericLiteral(self, ast):
2091
- return ast
2092
-
2093
- def varRef(self, ast):
2094
- return ast
2095
-
2096
- def varName(self, ast):
2097
- return ast
2098
-
2099
- def parenthesizedExpr(self, ast):
2100
- return ast
2101
-
2102
- def contextItemExpr(self, ast):
2103
- return ast
2104
-
2105
- def functionCall(self, ast):
2106
- return ast
2107
-
2108
- def singleType(self, ast):
2109
- return ast
2110
-
2111
- def sequenceType(self, ast):
2112
- return ast
2113
-
2114
- def occurrenceIndicator(self, ast):
2115
- return ast
2116
-
2117
- def itemType(self, ast):
2118
- return ast
2119
-
2120
- def atomicType(self, ast):
2121
- return ast
2122
-
2123
- def kindTest(self, ast):
2124
- return ast
2125
-
2126
- def anyKindTest(self, ast):
2127
- return ast
2128
-
2129
- def documentTest(self, ast):
2130
- return ast
2131
-
2132
- def textTest(self, ast):
2133
- return ast
2134
-
2135
- def commentTest(self, ast):
2136
- return ast
2137
-
2138
- def pITest(self, ast):
2139
- return ast
2140
-
2141
- def attributeTest(self, ast):
2142
- return ast
2143
-
2144
- def attribNameOrWildcard(self, ast):
2145
- return ast
2146
-
2147
- def schemaAttributeTest(self, ast):
2148
- return ast
2149
-
2150
- def attributeDeclaration(self, ast):
2151
- return ast
2152
-
2153
- def elementTest(self, ast):
2154
- return ast
2155
-
2156
- def elementNameOrWildcard(self, ast):
2157
- return ast
2158
-
2159
- def schemaElementTest(self, ast):
2160
- return ast
2161
-
2162
- def elementDeclaration(self, ast):
2163
- return ast
2164
-
2165
- def attributeName(self, ast):
2166
- return ast
2167
-
2168
- def elementName(self, ast):
2169
- return ast
2170
-
2171
- def typeName(self, ast):
2172
- return ast
2173
-
2174
- def integerLiteral(self, ast):
2175
- return ast
2176
-
2177
- def decimalLiteral(self, ast):
2178
- return ast
2179
-
2180
- def doubleLiteral(self, ast):
2181
- return ast
2182
-
2183
- def stringLiteral(self, ast):
2184
- return ast
2185
-
2186
- def ESCAPEQUOT(self, ast):
2187
- return ast
2188
-
2189
- def ESCAPEAPOS(self, ast):
2190
- return ast
2191
-
2192
- def qname(self, ast):
2193
- return ast
2194
-
2195
- def ncname(self, ast):
2196
- return ast
2197
-
2198
- def NCNAME_FRAG(self, ast):
2199
- return ast
2200
-
2201
- def DIGITS(self, ast):
2202
- return ast
2203
-
2204
-
2205
- def main(filename, start=None, **kwargs):
2206
- if start is None:
2207
- start = 'module'
2208
- if not filename or filename == '-':
2209
- text = sys.stdin.read()
2210
- else:
2211
- with open(filename) as f:
2212
- text = f.read()
2213
- parser = XFParser()
2214
- return parser.parse(text, rule_name=start, filename=filename, **kwargs)
2215
-
2216
-
2217
- if __name__ == '__main__':
2218
- import json
2219
- from tatsu.util import asjson
2220
-
2221
- ast = generic_main(main, XFParser, name='XF')
2222
- print('AST:')
2223
- print(ast)
2224
- print()
2225
- print('JSON:')
2226
- print(json.dumps(asjson(ast), indent=2))
2227
- print()