arelle-release 2.37.71__py3-none-any.whl → 2.38.0__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 (71) hide show
  1. arelle/BetaFeatures.py +0 -21
  2. arelle/Cntlr.py +7 -1
  3. arelle/CntlrCmdLine.py +95 -19
  4. arelle/CntlrWinMain.py +4 -1
  5. arelle/DialogFind.py +1 -1
  6. arelle/ModelDtsObject.py +2 -0
  7. arelle/ModelObject.py +16 -18
  8. arelle/ModelObjectFactory.py +17 -15
  9. arelle/ModelXbrl.py +7 -1
  10. arelle/PluginManager.py +1 -5
  11. arelle/RuntimeOptions.py +1 -0
  12. arelle/UrlUtil.py +11 -0
  13. arelle/Validate.py +3 -3
  14. arelle/ValidateXbrl.py +2 -1
  15. arelle/ValidateXbrlCalcs.py +210 -186
  16. arelle/WebCache.py +2 -8
  17. arelle/XbrlConst.py +2 -0
  18. arelle/XmlUtil.py +16 -21
  19. arelle/XmlValidate.py +4 -6
  20. arelle/_version.py +2 -2
  21. arelle/config/rosettaEntitlements.plist +8 -0
  22. arelle/conformance/CSVTestcaseLoader.py +1 -1
  23. arelle/formula/XPathContext.py +3 -3
  24. arelle/logging/formatters/LogFormatter.py +3 -1
  25. arelle/packages/report/ReportPackage.py +9 -1
  26. arelle/plugin/inlineXbrlDocumentSet.py +1 -3
  27. arelle/plugin/validate/DBA/DisclosureSystems.py +19 -1
  28. arelle/plugin/validate/DBA/resources/config.xml +5 -0
  29. arelle/plugin/validate/DBA/rules/fr.py +19 -2
  30. arelle/plugin/validate/DBA/rules/tc.py +2 -0
  31. arelle/plugin/validate/DBA/rules/th.py +6 -0
  32. arelle/plugin/validate/DBA/rules/tm.py +18 -5
  33. arelle/plugin/validate/DBA/rules/tr.py +11 -5
  34. arelle/plugin/validate/EDINET/ControllerPluginData.py +2 -1
  35. arelle/plugin/validate/EDINET/NamespaceConfig.py +50 -0
  36. arelle/plugin/validate/EDINET/PluginValidationDataExtension.py +33 -78
  37. arelle/plugin/validate/EDINET/TableOfContentsBuilder.py +153 -51
  38. arelle/plugin/validate/EDINET/rules/contexts.py +1 -1
  39. arelle/plugin/validate/EDINET/rules/edinet.py +163 -20
  40. arelle/plugin/validate/EDINET/rules/gfm.py +88 -1
  41. arelle/plugin/validate/EDINET/rules/upload.py +1 -1
  42. arelle/plugin/validate/ESEF/ESEF_2021/ValidateXbrlFinally.py +3 -3
  43. arelle/plugin/validate/ESEF/ESEF_Current/DTS.py +42 -14
  44. arelle/plugin/validate/ESEF/ESEF_Current/ValidateXbrlFinally.py +14 -3
  45. arelle/plugin/validate/ESEF/__init__.py +10 -5
  46. arelle/plugin/validate/ESEF/resources/authority-validations.json +10 -5
  47. arelle/plugin/validate/NL/DisclosureSystems.py +22 -0
  48. arelle/plugin/validate/NL/PluginValidationDataExtension.py +20 -0
  49. arelle/plugin/validate/NL/ValidationPluginExtension.py +48 -3
  50. arelle/plugin/validate/NL/resources/config.xml +18 -0
  51. arelle/plugin/validate/NL/rules/br_kvk.py +9 -54
  52. arelle/plugin/validate/NL/rules/fg_nl.py +7 -38
  53. arelle/plugin/validate/NL/rules/fr_kvk.py +7 -42
  54. arelle/plugin/validate/NL/rules/fr_nl.py +25 -140
  55. arelle/plugin/validate/NL/rules/nl_kvk.py +125 -12
  56. arelle/plugin/validate/ROS/rules/ros.py +3 -1
  57. arelle/plugin/validate/UK/__init__.py +70 -14
  58. arelle/utils/EntryPointDetection.py +17 -11
  59. arelle/utils/validate/ESEFImage.py +3 -3
  60. arelle/utils/validate/Validation.py +9 -0
  61. arelle/utils/validate/ValidationPlugin.py +14 -12
  62. {arelle_release-2.37.71.dist-info → arelle_release-2.38.0.dist-info}/METADATA +10 -5
  63. {arelle_release-2.37.71.dist-info → arelle_release-2.38.0.dist-info}/RECORD +67 -69
  64. {arelle_release-2.37.71.dist-info → arelle_release-2.38.0.dist-info}/licenses/LICENSE.md +0 -3
  65. arelle/model/CommentBase.py +0 -9
  66. arelle/model/ElementBase.py +0 -11
  67. arelle/model/PIBase.py +0 -10
  68. arelle/model/__init__.py +0 -15
  69. {arelle_release-2.37.71.dist-info → arelle_release-2.38.0.dist-info}/WHEEL +0 -0
  70. {arelle_release-2.37.71.dist-info → arelle_release-2.38.0.dist-info}/entry_points.txt +0 -0
  71. {arelle_release-2.37.71.dist-info → arelle_release-2.38.0.dist-info}/top_level.txt +0 -0
@@ -26,7 +26,7 @@ if TYPE_CHECKING:
26
26
  class EntrypointParseResult:
27
27
  success: bool
28
28
  entrypointFiles: list[dict[str, Any]]
29
- filesource: FileSource | None
29
+ filesource: FileSource.FileSource | None
30
30
 
31
31
 
32
32
  def parseEntrypointFileInput(cntlr: Cntlr, entrypointFile: str | None, sourceZipStream=None, fallbackSelect=True) -> EntrypointParseResult:
@@ -79,8 +79,9 @@ def filesourceEntrypointFiles(filesource, entrypointFiles=None, inlineOnly=False
79
79
  if filesource.isTaxonomyPackage: # if archive is also a taxonomy package, activate mappings
80
80
  filesource.loadTaxonomyPackageMappings()
81
81
  # HF note: a web api request to load a specific file from archive is ignored, is this right?
82
- del entrypointFiles[:] # clear out archive from entrypointFiles
82
+ discoveredEntrypointFiles = []
83
83
  if reportPackage := filesource.reportPackage:
84
+ del entrypointFiles[:]
84
85
  assert isinstance(filesource.basefile, str)
85
86
  for report in reportPackage.reports or []:
86
87
  if report.isInline:
@@ -91,9 +92,9 @@ def filesourceEntrypointFiles(filesource, entrypointFiles=None, inlineOnly=False
91
92
  ixdsDiscovered = True
92
93
  if not ixdsDiscovered and len(reportEntries) > 1:
93
94
  raise RuntimeError(_("Loading error. Inline document set encountered. Enable 'InlineXbrlDocumentSet' plug-in to load this filing: {0}").format(filesource.url))
94
- entrypointFiles.extend(reportEntries)
95
+ discoveredEntrypointFiles.extend(reportEntries)
95
96
  elif not inlineOnly:
96
- entrypointFiles.append({"file": report.fullPathPrimary})
97
+ discoveredEntrypointFiles.append({"file": report.fullPathPrimary})
97
98
  elif fallbackSelect:
98
99
  # attempt to find inline XBRL files before instance files, .xhtml before probing others (ESMA)
99
100
  urlsByType = {}
@@ -105,20 +106,25 @@ def filesourceEntrypointFiles(filesource, entrypointFiles=None, inlineOnly=False
105
106
  # use inline instances, if any, else non-inline instances
106
107
  for identifiedType in ((ModelDocument.Type.INLINEXBRL,) if inlineOnly else (ModelDocument.Type.INLINEXBRL, ModelDocument.Type.INSTANCE)):
107
108
  for url in urlsByType.get(identifiedType, []):
108
- entrypointFiles.append({"file":url})
109
- if entrypointFiles:
109
+ discoveredEntrypointFiles.append({"file":url})
110
+ if discoveredEntrypointFiles:
110
111
  if identifiedType == ModelDocument.Type.INLINEXBRL:
111
112
  for pluginXbrlMethod in PluginManager.pluginClassMethods("InlineDocumentSet.Discovery"):
112
- pluginXbrlMethod(filesource, entrypointFiles) # group into IXDS if plugin feature is available
113
+ pluginXbrlMethod(filesource, discoveredEntrypointFiles) # group into IXDS if plugin feature is available
113
114
  break # found inline (or non-inline) entrypoint files, don't look for any other type
114
115
  # for ESEF non-consolidated xhtml documents accept an xhtml entry point
115
- if not entrypointFiles and not inlineOnly:
116
+ if not discoveredEntrypointFiles and not inlineOnly:
116
117
  for url in urlsByType.get(ModelDocument.Type.HTML, []):
117
- entrypointFiles.append({"file":url})
118
- if not entrypointFiles and filesource.taxonomyPackage is not None:
118
+ discoveredEntrypointFiles.append({"file":url})
119
+ if not discoveredEntrypointFiles and filesource.taxonomyPackage is not None:
119
120
  for packageEntry in filesource.taxonomyPackage.get('entryPoints', {}).values():
120
121
  for _resolvedUrl, remappedUrl, _closest in packageEntry:
121
- entrypointFiles.append({"file": remappedUrl})
122
+ discoveredEntrypointFiles.append({"file": remappedUrl})
123
+ if discoveredEntrypointFiles:
124
+ # Only clear archive entry points if we discovered new ones.
125
+ # This could be a plugin loaded archive, such as an Excel file.
126
+ del entrypointFiles[:]
127
+ entrypointFiles.extend(discoveredEntrypointFiles)
122
128
 
123
129
 
124
130
  elif os.path.isdir(filesource.url):
@@ -108,12 +108,12 @@ def validateImage(
108
108
  if isExternalUrl(image):
109
109
  yield Validation.error(("ESEF.4.1.6.xHTMLDocumentContainsExternalReferences" if not params.consolidated
110
110
  else "ESEF.3.5.1.inlineXbrlDocumentContainsExternalReferences",
111
- "NL.NL-KVK.3.6.2.1.inlineXbrlDocumentContainsExternalReferences"),
111
+ "NL.NL-KVK.3.6.2.1.inlineXbrlDocumentSetContainsExternalReferences"),
112
112
  _("Inline XBRL instance documents MUST NOT contain any reference pointing to resources outside the reporting package: %(element)s"),
113
113
  modelObject=elts, element=elts[0].tag, evaluatedMsg=evaluatedMsg,
114
114
  messageCodes=("ESEF.3.5.1.inlineXbrlDocumentContainsExternalReferences",
115
115
  "ESEF.4.1.6.xHTMLDocumentContainsExternalReferences",
116
- "NL.NL-KVK.3.6.2.1.inlineXbrlDocumentContainsExternalReferences"))
116
+ "NL.NL-KVK.3.6.2.1.inlineXbrlDocumentSetContainsExternalReferences"))
117
117
  elif image.startswith("data:image"):
118
118
  dataURLParts = parseImageDataURL(image)
119
119
  if not dataURLParts or not dataURLParts.isBase64:
@@ -278,6 +278,6 @@ def checkSVGContentElt(
278
278
  _("Inline XBRL images MUST NOT contain executable code: %(element)s"),
279
279
  modelObject=imgElts, element=eltTag)
280
280
  elif isExternalUrl(href):
281
- yield Validation.error((f"{guidance}.referencesPointingOutsideOfTheReportingPackagePresent", "NL.NL-KVK.3.6.2.1.inlineXbrlDocumentContainsExternalReferences"),
281
+ yield Validation.error((f"{guidance}.referencesPointingOutsideOfTheReportingPackagePresent", "NL.NL-KVK.3.6.2.1.inlineXbrlDocumentSetContainsExternalReferences"),
282
282
  _("Inline XBRL instance document [image] MUST NOT contain any reference pointing to resources outside the reporting package: %(element)s"),
283
283
  modelObject=imgElts, element=eltTag)
@@ -10,6 +10,7 @@ from typing import Any
10
10
 
11
11
  class Level(Enum):
12
12
  ERROR = "ERROR"
13
+ INCONSISTENCY = "INCONSISTENCY"
13
14
  WARNING = "WARNING"
14
15
 
15
16
  @dataclass(frozen=True)
@@ -36,6 +37,14 @@ class Validation:
36
37
  ) -> Validation:
37
38
  return Validation(level=Level.ERROR, codes=codes, msg=msg, args=kwargs)
38
39
 
40
+ @staticmethod
41
+ def inconsistency(
42
+ codes: str | tuple[str, ...],
43
+ msg: str,
44
+ **kwargs: Any,
45
+ ) -> Validation:
46
+ return Validation(level=Level.INCONSISTENCY, codes=codes, msg=msg, args=kwargs)
47
+
39
48
  @staticmethod
40
49
  def warning(
41
50
  codes: str | tuple[str, ...],
@@ -12,6 +12,7 @@ from arelle.Cntlr import Cntlr
12
12
  from arelle.DisclosureSystem import DisclosureSystem
13
13
  from arelle.FileSource import FileSource
14
14
  from arelle.ModelDocument import LoadingException, ModelDocument
15
+ from arelle.ModelManager import ModelManager
15
16
  from arelle.ModelXbrl import ModelXbrl
16
17
  from arelle.ValidateXbrl import ValidateXbrl
17
18
  from arelle.utils.PluginData import PluginData
@@ -229,15 +230,16 @@ class ValidationPlugin:
229
230
  *args: Any,
230
231
  **kwargs: Any,
231
232
  ) -> None:
232
- pluginData = self.newPluginData(
233
- cntlr=cntlr,
234
- validateXbrl=None
235
- )
236
- for rule in self._getValidations(cntlr.modelManager.disclosureSystem, pluginHook):
237
- validations = rule(pluginData, cntlr, fileSource, *args, **kwargs)
238
- if validations is not None:
239
- for val in validations:
240
- cntlr.error(level=val.level.name, codes=val.codes, msg=val.msg, fileSource=fileSource, **val.args)
233
+ if self.disclosureSystemFromPluginSelected(cntlr.modelManager):
234
+ pluginData = self.newPluginData(
235
+ cntlr=cntlr,
236
+ validateXbrl=None
237
+ )
238
+ for rule in self._getValidations(cntlr.modelManager.disclosureSystem, pluginHook):
239
+ validations = rule(pluginData, cntlr, fileSource, *args, **kwargs)
240
+ if validations is not None:
241
+ for val in validations:
242
+ cntlr.validation(val, fileSource=fileSource)
241
243
 
242
244
  def _executeModelValidations(
243
245
  self,
@@ -259,13 +261,13 @@ class ValidationPlugin:
259
261
  if validations is not None:
260
262
  modelXbrl = validateXbrl.modelXbrl
261
263
  for val in validations:
262
- modelXbrl.log(level=val.level.name, codes=val.codes, msg=val.msg, **val.args)
264
+ modelXbrl.validation(val)
263
265
 
264
266
  def disclosureSystemFromPluginSelected(
265
267
  self,
266
- model: ValidateXbrl | ModelXbrl,
268
+ model: ValidateXbrl | ModelManager | ModelXbrl,
267
269
  ) -> bool:
268
- if isinstance(model, ValidateXbrl):
270
+ if isinstance(model, (ModelManager, ValidateXbrl)):
269
271
  disclosureSystem = model.disclosureSystem
270
272
  elif isinstance(model, ModelXbrl):
271
273
  disclosureSystem = model.modelManager.disclosureSystem
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arelle-release
3
- Version: 2.37.71
3
+ Version: 2.38.0
4
4
  Summary: An open source XBRL platform.
5
5
  Author-email: "arelle.org" <support@arelle.org>
6
6
  License-Expression: Apache-2.0
@@ -18,14 +18,14 @@ Classifier: Intended Audience :: End Users/Desktop
18
18
  Classifier: Intended Audience :: Developers
19
19
  Classifier: Natural Language :: English
20
20
  Classifier: Programming Language :: Python :: 3
21
- Classifier: Programming Language :: Python :: 3.9
22
21
  Classifier: Programming Language :: Python :: 3.10
23
22
  Classifier: Programming Language :: Python :: 3.11
24
23
  Classifier: Programming Language :: Python :: 3.12
25
24
  Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Programming Language :: Python :: 3.14
26
26
  Classifier: Operating System :: OS Independent
27
27
  Classifier: Topic :: Text Processing :: Markup :: XML
28
- Requires-Python: <3.14,>=3.9
28
+ Requires-Python: >=3.10
29
29
  Description-Content-Type: text/markdown
30
30
  License-File: LICENSE.md
31
31
  Requires-Dist: bottle<0.14,>=0.13
@@ -37,15 +37,16 @@ Requires-Dist: jsonschema<5,>=4
37
37
  Requires-Dist: lxml!=6.0.0,<7,>=4
38
38
  Requires-Dist: numpy<3,>=1
39
39
  Requires-Dist: openpyxl<4,>=3
40
- Requires-Dist: pillow<12,>=10
40
+ Requires-Dist: pillow<13,>=10
41
41
  Requires-Dist: pyparsing<4,>=3
42
42
  Requires-Dist: python-dateutil<3,>=2
43
43
  Requires-Dist: regex
44
- Requires-Dist: truststore<1,>=0; python_version > "3.9"
44
+ Requires-Dist: truststore<1,>=0
45
45
  Requires-Dist: typing-extensions<5,>=4
46
46
  Provides-Extra: crypto
47
47
  Requires-Dist: pycryptodome<4,>=3; extra == "crypto"
48
48
  Provides-Extra: db
49
+ Requires-Dist: cx_Oracle<9,>=8; extra == "db"
49
50
  Requires-Dist: pg8000<2,>=1; extra == "db"
50
51
  Requires-Dist: PyMySQL<2,>=1; extra == "db"
51
52
  Requires-Dist: pyodbc<6,>=4; extra == "db"
@@ -57,8 +58,12 @@ Requires-Dist: matplotlib<4,>=3; extra == "efm"
57
58
  Requires-Dist: pytz; extra == "efm"
58
59
  Provides-Extra: esef
59
60
  Requires-Dist: tinycss2<2,>=1; extra == "esef"
61
+ Provides-Extra: gui
62
+ Requires-Dist: pywin32<400,>=300; sys_platform == "win32" and extra == "gui"
60
63
  Provides-Extra: objectmaker
61
64
  Requires-Dist: graphviz<1,>=0; extra == "objectmaker"
65
+ Provides-Extra: viewer
66
+ Requires-Dist: ixbrl-viewer<2,>=1; extra == "viewer"
62
67
  Provides-Extra: webserver
63
68
  Requires-Dist: cheroot<12,>=8; extra == "webserver"
64
69
  Requires-Dist: tornado<7,>=6; extra == "webserver"
@@ -1,16 +1,16 @@
1
1
  arelle/Aspect.py,sha256=Pn9I91D1os1RTVj6htuxTfRzVMhmVDtrbKvV_zy9xMI,5470
2
- arelle/BetaFeatures.py,sha256=T_tPac-FiozHyYLCemt0RoHJ1JahUE71L-0tHmIRKpE,858
3
- arelle/Cntlr.py,sha256=GvHkm1ev2hf6rWPA4g3a62YEJOWxz5lZOa2Dq1X1lnM,31721
4
- arelle/CntlrCmdLine.py,sha256=OF1FhC9aYwhfMUcaAFOnaNAo5jkHpiI3c51n765sNWM,89073
2
+ arelle/BetaFeatures.py,sha256=dKQSgeoQ-TM01fUhA3mOLXXbXOglOEI7t2xuuVjr6SQ,167
3
+ arelle/Cntlr.py,sha256=VZbRuqZEgIQx63dTkhn-YRBk37IjqRF4XwoBoSYE_uM,32054
4
+ arelle/CntlrCmdLine.py,sha256=JQOYFInYYzgjX0voK8LCPzdJyvZlSRI0i7NqMHeSusE,92152
5
5
  arelle/CntlrComServer.py,sha256=h1KPf31uMbErpxTZn_iklDqUMGFgQnjZkFkFjd8gtLQ,1888
6
6
  arelle/CntlrProfiler.py,sha256=2VQJudiUhxryVypxjODx2ccP1-n60icTiWs5lSEokhQ,972
7
7
  arelle/CntlrQuickBooks.py,sha256=BMqd5nkNQOZyNFPefkTeWUUDCYNS6BQavaG8k1Lepu4,31543
8
8
  arelle/CntlrWebMain.py,sha256=_jhosP0Pg-erutBRzTVsL0cmWVgbc6z0WIIlNO-z1N4,50712
9
- arelle/CntlrWinMain.py,sha256=sqHolDdlcPxfOEHWU_sIy8i89RsZvdYA5LbK7GG_HX4,98440
9
+ arelle/CntlrWinMain.py,sha256=5fLGgB1_aBWOmC3A3aAeoeCB2eN5VohfoycH_NH29o8,98678
10
10
  arelle/CntlrWinTooltip.py,sha256=6MzoAIfkYnNu_bl_je8n0adhwmKxAIcymkg9Tij9Z4M,7951
11
11
  arelle/DialogAbout.py,sha256=XXzMV0fO4BQ3-l1Puirzmn7EZEdmgJg7JNYdJm1FueM,1987
12
12
  arelle/DialogArcroleGroup.py,sha256=r81OT3LFmMkoROpFenk97oVEyQhibKZ1QgDHvMsyCl0,7547
13
- arelle/DialogFind.py,sha256=285X5TDP4O75fBBK-NLOJPCSnEd8E_x8np1nOH0NJOo,19420
13
+ arelle/DialogFind.py,sha256=oJM1iYesgoYBeVYGaKMjs3SvyLx0HQwF6L2d8_krnJA,19462
14
14
  arelle/DialogFormulaParameters.py,sha256=Z2k_HgRJ9mscVmKu-NZA0di5UQHJooZKVby3QH9FZvU,8630
15
15
  arelle/DialogLanguage.py,sha256=HEBd21CfcJwGAGEu2gMyYHM0cXa0VVGAh-kxlZo8H9Q,7228
16
16
  arelle/DialogNewFactItem.py,sha256=blcE420dyMs6GEJW-YbtPj0lwc-YTUwyyEJh_Zvq9yE,8281
@@ -37,12 +37,12 @@ arelle/LinkbaseType.py,sha256=BwRQl4XZFFCopufC2FEMLhYENNTk2JUWVQvnIUsaqtI,3108
37
37
  arelle/LocalViewer.py,sha256=WVrfek_bLeFFxgWITi1EQb6xCQN8O9Ks-ZL16vRncSk,3080
38
38
  arelle/Locale.py,sha256=07IDxv8nIfvhyRRllFdEAKRI3yo1D2v781cTrjb_RoQ,33193
39
39
  arelle/ModelDocument.py,sha256=R4uVfqks2XRDziRPAp_AUFebrAQBf4FgG97nb5h7fAs,130651
40
- arelle/ModelDtsObject.py,sha256=VUDsq8Ua0a-Hrhu-vFMaajwZLKjjr7xC4e-LAJSz-k0,88968
40
+ arelle/ModelDtsObject.py,sha256=cydbUxCsParbTCMxy8CJLMhea-iErH4ZJmkNJqHSytA,89033
41
41
  arelle/ModelFormulaObject.py,sha256=-eb0lBYciEeAvvGduIs3AHGNGrxge9_0g1cVT6UUgvc,122560
42
42
  arelle/ModelInstanceObject.py,sha256=77rkxl1FK8OyJhTXkrNv6B_4oEK6IZm9eRQdFDxslGk,74278
43
43
  arelle/ModelManager.py,sha256=QUNcD2LC_YyyGFU8bFTSuzIGI1qpOK55KBlQ697Ep1I,11075
44
- arelle/ModelObject.py,sha256=Rttkhv-PtfneZyDYsG5FDh98BzT97ameTmwNdqFaOv0,18657
45
- arelle/ModelObjectFactory.py,sha256=0yEtkmyOmSjhUK1I4b3eINxtYKsysakntoWn4VAqLeg,9172
44
+ arelle/ModelObject.py,sha256=6QpIxxRkAk8xu-B2CVjWNhAAIE_-xDs94BZDOAYalok,18288
45
+ arelle/ModelObjectFactory.py,sha256=vFOhiCoUXmWqieER6K-AAbFLBBvE7gcipt5xAQzT3Zc,9316
46
46
  arelle/ModelRelationshipSet.py,sha256=0ykYbdAxl-MxDOZlJ6f6yGzGQ6vqKFIimHrw0khxtjw,24811
47
47
  arelle/ModelRenderingObject.py,sha256=iPhSUlSBG-FLzAfIdUW06UZDgTCaZJ4K2mxvAtSe2BU,76021
48
48
  arelle/ModelRssItem.py,sha256=GzFkmluOlFsVcrxn9HAyOAcuE7rcHUOGkp4Q6F2IlT8,7713
@@ -51,14 +51,14 @@ arelle/ModelTestcaseObject.py,sha256=2hFrl1tdDAxPZpZCEJdYUzti-HFLGgDgCNp6lEBPvqs
51
51
  arelle/ModelValue.py,sha256=0sr7njFjGI2W3Bct2dxf2LoG_fLerHQouQtM0v0ZY2E,39573
52
52
  arelle/ModelVersObject.py,sha256=cPD1IzhkCfuV1eMgVFWes88DH_6WkUj5kj7sgGF2M0I,26062
53
53
  arelle/ModelVersReport.py,sha256=bXEA9K3qkH57aABn5l-m3CTY0FAcF1yX6O4fo-URjl8,73326
54
- arelle/ModelXbrl.py,sha256=oEEP-whMGZjG45BXeXabXcD_IzBp7yA-21gW6zlGe2U,61120
54
+ arelle/ModelXbrl.py,sha256=SFRTxnk4G_2scLwSXyazvHYcYJLSc_EzEEjlSErtE9k,61367
55
55
  arelle/PackageManager.py,sha256=BvPExMcxh8rHMxogOag-PGbX6vXdhCiXAHcDLA6Ypsc,32592
56
- arelle/PluginManager.py,sha256=axNOsdpUvhths9ePeTAF3hurwrOooXA-7cGnG43z99k,42676
56
+ arelle/PluginManager.py,sha256=zsf1fNC39Ux5MFOP2kvCrh63Ufx4amaWZV1-BK5WSGo,42502
57
57
  arelle/PluginUtils.py,sha256=0vFQ29wVVpU0cTY3YOBL6FhNQhhCTwShBH4qTJGLnvc,2426
58
58
  arelle/PrototypeDtsObject.py,sha256=0lf60VcXR_isx57hBPrc7vEMkFpYkVuK4JVBSmopzkQ,7989
59
59
  arelle/PrototypeInstanceObject.py,sha256=CXUoDllhDqpMvSQjqIYi1Ywp-J8fLhQRV9wVD2YXgVo,13204
60
60
  arelle/PythonUtil.py,sha256=pkh3-XixCOiVHhGlrt8l0va-iWCtkyO5ZMjEvNAadRA,12524
61
- arelle/RuntimeOptions.py,sha256=XjTxA2tcdc_P2v7xZGTx_-imjOqtcl48ch3S-Q-q-7Y,8462
61
+ arelle/RuntimeOptions.py,sha256=PTmpIki2wRL9x9No48465Z6wE9P2laQ8-9ZGZr-37tA,8500
62
62
  arelle/SocketUtils.py,sha256=1wa2sA_QhM8F1klHFq90V1AgO1-hY9pJm0554FiF7Lc,677
63
63
  arelle/SystemInfo.py,sha256=6330pNedRkAPlEKl-ZdaZHiGuucEGZMI-Jrdy7B1rrU,2454
64
64
  arelle/TableStructure.py,sha256=PABOHJiTa56cHyF9qRLD7TohmCHyDTrGEltW8toP_rk,29409
@@ -66,16 +66,16 @@ arelle/TkTableWrapper.py,sha256=Bdm-WmLdwIiudqfaVGZElip_92eeSKQdd7hCjlILm1A,3361
66
66
  arelle/UITkTable.py,sha256=N83cXi5c0lLZLsDbwSKcPrlYoUoGsNavGN5YRx6d9XY,39810
67
67
  arelle/UiUtil.py,sha256=3G0xPclZI8xW_XQDbiFrmylB7Nd5muqi5n2x2oMkMZU,34218
68
68
  arelle/Updater.py,sha256=IZ8cq44Rq88WbQcB1VOpMA6bxdfZxfYQ8rgu9Ehpbes,7448
69
- arelle/UrlUtil.py,sha256=EmjVfZ6-Ax5cvjVsbdYMb3VHzISVecGDE2gLRHzHmfQ,32489
70
- arelle/Validate.py,sha256=v9_Z9hGMMJnKlHsbQVM_eLqFQM5dO1vVCE9KSdKKleI,58780
69
+ arelle/UrlUtil.py,sha256=AeG6NCOWRtuzejWSPI4MWqXZ3u0zcC6PwP_BevFwm8Y,32958
70
+ arelle/Validate.py,sha256=DMjP89QOk8ZlpoyDtXw4tDhuYzZrWG8qway9o2UPJAM,58693
71
71
  arelle/ValidateDuplicateFacts.py,sha256=LEIbdEvm_fD4Nr5PMpVSy05e7FuyTw-VJMTVSSNX7Ac,21819
72
72
  arelle/ValidateFileSource.py,sha256=3a7KzecNI3_iiMExmmYTXrowR2Vn6GYT4zKhTPBRIto,1379
73
73
  arelle/ValidateFilingText.py,sha256=ppPC8Uje1cxaVXQnRSpgNtLO2BlHWM9316IxPj7bfpA,54024
74
74
  arelle/ValidateInfoset.py,sha256=Rz_XBi5Ha43KpxXYhjLolURcWVx5qmqyjLxw48Yt9Dg,20396
75
75
  arelle/ValidateUtr.py,sha256=oxOPrOa1XEzBay4miXvx6eRLTnVFYUIJC9ueWUk4EkI,13633
76
76
  arelle/ValidateVersReport.py,sha256=RMe7GlcyZV0HoVFHL0qOGrKm4et-6yPq5dmikkhnvoU,43196
77
- arelle/ValidateXbrl.py,sha256=RSB-rLI3Y0udLVdo6eqN9mxpsS2rrIGr6EvwHt1K-LI,78220
78
- arelle/ValidateXbrlCalcs.py,sha256=6OMjIef6ixJGkxH-hgIRbMRJ46e52KEo-8vDyM97krc,44028
77
+ arelle/ValidateXbrl.py,sha256=WYSf70YQRs4VdlUX1cIjufldAaMQAm2GBPQNKYgQXQw,78274
78
+ arelle/ValidateXbrlCalcs.py,sha256=bkGW5eN3A-rbA-e5x1xEkmcB0AgHFjv4JlmG5WVUPC8,43182
79
79
  arelle/ValidateXbrlDTS.py,sha256=souKOWM_i52g0mNu9TMhqqdEwXm1tDO7R2n396r_7gs,103992
80
80
  arelle/ValidateXbrlDimensions.py,sha256=Qv7_CI65SiUcpgsnEc86XuMjKz81-170wE5dmZqnvHc,38373
81
81
  arelle/Version.py,sha256=RjbPSSiH57VzZFhhUmEmvLsL8uSb5VwEIj2zq-krhsY,934
@@ -116,17 +116,17 @@ arelle/ViewWinTupleGrid.py,sha256=Li21jmMSZP3xIkpg8eY8Sq7KTIuAgM57wHu7i7Nu3P0,89
116
116
  arelle/ViewWinVersReport.py,sha256=aYfsOgynVZpMzl6f2EzQCBLzdihYGycwb5SiTghkgMQ,9344
117
117
  arelle/ViewWinXml.py,sha256=4ZGKtjaoCwU9etKYm9ZAS7jSmUxba1rqNEdv0OIyjTY,1250
118
118
  arelle/WatchRss.py,sha256=5Ih4igH2MM4hpOuAXy9eO0QAyZ7jZR3S5bPzo2sdFpw,14097
119
- arelle/WebCache.py,sha256=SLk-S5StYUIucm5bd2BqT-o8ZA0NdYw2Xl4O9vIt7O8,45257
120
- arelle/XbrlConst.py,sha256=_uQviD2eNHyinlNifKGH2c-FdKW5m9016TJ2xgTRrFg,59198
119
+ arelle/WebCache.py,sha256=UiMEHzxzBU2HtcL7850XqXpHFKEj0Xah-wV8QuUj0xU,44973
120
+ arelle/XbrlConst.py,sha256=TqjbeBw27rSL4pb8HT0GUpeMRMkfVOdO6e8R94cXNSI,59310
121
121
  arelle/XbrlUtil.py,sha256=s2Vmrh-sZI5TeuqsziKignOc3ao-uUgnCNoelP4dDj0,9212
122
122
  arelle/XhtmlValidate.py,sha256=0gtm7N-kXK0RB5o3c1AQXjfFuRp1w2fKZZAeyruNANw,5727
123
- arelle/XmlUtil.py,sha256=1VToOOylF8kbEorEdZLThmq35j9bmuF_DS2q9NthnHU,58774
124
- arelle/XmlValidate.py,sha256=0unn-jUQ8yXGURwFdIYa4O3nX49yZsA_jhROCrqAZDk,45796
123
+ arelle/XmlUtil.py,sha256=KyL8PBOZtaCbmSlRg0TahI6j2QSkLncm7yjjT4iCRwM,58191
124
+ arelle/XmlValidate.py,sha256=iBS2McsAIdNJz_iN8nCmMPiqNbRnxZ-GCp2q5MCUB48,45606
125
125
  arelle/XmlValidateConst.py,sha256=U_wN0Q-nWKwf6dKJtcu_83FXPn9c6P8JjzGA5b0w7P0,338
126
126
  arelle/XmlValidateParticles.py,sha256=Mn6vhFl0ZKC_vag1mBwn1rH_x2jmlusJYqOOuxFPO2k,9231
127
127
  arelle/XmlValidateSchema.py,sha256=6frtZOc1Yrx_5yYF6V6oHbScnglWrVbWr6xW4EHtLQI,7428
128
128
  arelle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
- arelle/_version.py,sha256=XU5YqU4Yu6IlFYkt0vnaXoz4qV98LcqGslaVzytogJ0,708
129
+ arelle/_version.py,sha256=CCohh_LrD48_lK7aIryCpNYK28prKK7ow4_-h_jvDys,706
130
130
  arelle/typing.py,sha256=PRe-Fxwr2SBqYYUVPCJ3E7ddDX0_oOISNdT5Q97EbRM,1246
131
131
  arelle/api/Session.py,sha256=a71ML4FOkWxeqxQBRu6WUqkUoI4C5R6znzAQcbGR5jg,7902
132
132
  arelle/config/creationSoftwareNames.json,sha256=5MK7XUjfDJ9OpRCCHXeOErJ1SlTBZji4WEcEOdOacx0,3128
@@ -137,6 +137,7 @@ arelle/config/empty-instance.xml,sha256=1wRlhlSErE_ro3noF30-WTM0WVOpyKUI9L9POrbt
137
137
  arelle/config/erxl.xsd,sha256=27GMbkisl6dA6ZOXZiOtBEwBQPb1fBUc4KOYNVsRo0o,2167
138
138
  arelle/config/mappings.xml,sha256=gqqwWEe-rWbG9XdesUH3oi-xpruxX4lWN73juNxAy84,3227
139
139
  arelle/config/mappings.xsd,sha256=Z5PTg2akjzNVfO2ys4MPZVUtjTAiFb2M8MMpCinKTk0,1077
140
+ arelle/config/rosettaEntitlements.plist,sha256=Oj-uHmyQWxPvied3fY68_OlyebXjChkq0t04bD5kkjo,270
140
141
  arelle/config/sbr-text-formatting.xsd,sha256=gDB9bKpa4TNaPd8wn1jVBfRFquYhgIcIgW8doxB9T7g,21797
141
142
  arelle/config/xbrlschemafiles.xml,sha256=c8wNhe8Gwex45WnsCBj3eSLtr_xBlwAdcE6Gi7jHN3I,3283
142
143
  arelle/config/xhtml-lat1.ent,sha256=PaHarQj5O4r_ejLVRH-UhT1RdWHZx9DHvD7lwALRKjg,11775
@@ -144,14 +145,14 @@ arelle/config/xhtml-special.ent,sha256=f5UYAmxZzO5HoC7XTkP4lG2SIH1Din9UCg88KPBfo
144
145
  arelle/config/xhtml-symbol.ent,sha256=ps0PnFnkiLjI4t6AwxxoEfMWo5Gc2aByW1OQqPx4XWE,13848
145
146
  arelle/config/xhtml1-strict-ix.dtd,sha256=aFKr6XExPXXqT7aTjcVClLVZEQy4V6kPcOPR6L83djc,26880
146
147
  arelle/config/xhtml1_1-strict-ix.dtd,sha256=qcZAFkndssIBRDlu3DzoKODBi6WzPb82XAev40czZlQ,27449
147
- arelle/conformance/CSVTestcaseLoader.py,sha256=nWlRWcpFdPNfwiXpAzPX3w_zCPf8SCcEcy-wV-m7kF0,3493
148
+ arelle/conformance/CSVTestcaseLoader.py,sha256=FaM5qp4SWPOGvR6-l28aomQ6jerjxN6HszEO2vh2C2I,3467
148
149
  arelle/doc/messagesCatalog.xml,sha256=7j66ZzmbPh_W6-t3aAvWYq5oUk6Xj2BtCyBL4o_qssM,335579
149
150
  arelle/doc/messagesCatalog.xsd,sha256=bBILAsbw7x7ulIeycgLMFMrCpCXkyjA3Ny1qxuMAIls,1151
150
151
  arelle/formula/FactAspectsCache.py,sha256=YKEVZSIfP0NRB7Vxweg3ylyxKIDSZMdaTrASjgeYrpw,2706
151
152
  arelle/formula/FormulaConsisAsser.py,sha256=hO4GZwozM5cGl1xTU6OwoF3LlaMxAEB5Oy0rJh7uyG0,7567
152
153
  arelle/formula/FormulaEvaluator.py,sha256=WKNyJz1Os9gsKedJXLNC9y9u11Ea4_JQ-RAI7gSFmPU,82600
153
154
  arelle/formula/ValidateFormula.py,sha256=b_stG7h8RhaSsPt07_x-GRBHOl2uy-JNSMd6v-jkg_w,95942
154
- arelle/formula/XPathContext.py,sha256=7UsUZqHYaz60SgSoEIQxIyK2wbwRMj3iFFqGbpye-ao,49849
155
+ arelle/formula/XPathContext.py,sha256=-RX_yVYoQeKbl1l4f2NiWqOkEi589tWPAnTpy0lA9ng,49767
155
156
  arelle/formula/XPathParser.py,sha256=__I7KwHjCk7MdvrJFHkHW0eLKgw_sQ5S7B1bt17_YqQ,50410
156
157
  arelle/formula/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
157
158
  arelle/images/arelle-full-word.ico,sha256=jsAzyAJZTtVPafxhgFQtdWJj7r_r0YhX_iWvWnZ4QKg,2430
@@ -205,16 +206,12 @@ arelle/locale/fr/LC_MESSAGES/arelle.mo,sha256=HsXvnKEsnhqJqH6H9SlGBy451fnQTaizbZ
205
206
  arelle/locale/fr/LC_MESSAGES/fr.po,sha256=D2WHLI9NktcxgmGx91fRLNLoVjvO3Z0jjS9AJlroOCE,168077
206
207
  arelle/locale/ru/LC_MESSAGES/arelle.mo,sha256=i004xdiJMpXus5DnSz2y708H5vPt78Pu5ApkrdC9Fqw,375378
207
208
  arelle/locale/ru/LC_MESSAGES/ru.po,sha256=aOQv5MfenTHo_y_RbkRen2SvgBQDTnmxOkKOZsUE3LQ,449575
208
- arelle/logging/formatters/LogFormatter.py,sha256=emXkUWLRZ65-qu9K-BcYrT2ueR8R-YchA8bwPY3yA60,1968
209
+ arelle/logging/formatters/LogFormatter.py,sha256=RunsjzAQPlqK7SShDiVMVpzsJSVzwtlpOGHEzGNFGVA,2004
209
210
  arelle/logging/handlers/LogHandlerWithXml.py,sha256=xj-m6aNh4gksxP9AjN0xkECxVdx9m7ElCC0lXkhFcUQ,4318
210
211
  arelle/logging/handlers/LogToBufferHandler.py,sha256=tTzHRw9tn1Osrpc5rcKxk2iTEE3uIq5wb792z5RVYAs,612
211
212
  arelle/logging/handlers/LogToPrintHandler.py,sha256=iT5eTZx5MXJRhI-vZjlenNOSDRgiNXSQhh398Njbje0,1299
212
213
  arelle/logging/handlers/LogToXmlHandler.py,sha256=eQGI_AQ6XrfIN_wl4TKnbLw_5D1bZz1UaWvegV2qpQA,10489
213
214
  arelle/logging/handlers/StructuredMessageLogHandler.py,sha256=iqHRH9QGvAlaD7AKvzLq2lq4IpAMdycPNYwzcqonNts,2244
214
- arelle/model/CommentBase.py,sha256=NtC2lFd9Mt1y7kzWwrpvexwqBdfSe1nvGFiIJeio3rU,177
215
- arelle/model/ElementBase.py,sha256=pZX836d4-s-OvzPMUusvEDezI9D_6YKO7_j6iDcUXm4,404
216
- arelle/model/PIBase.py,sha256=easZ3pKXJ5wq3NFB2pDtBeXNDcjwMAXylpXz6mnumOg,257
217
- arelle/model/__init__.py,sha256=RLmC1rTus3T_2Vvnu3yHtdw1r0wrZCHZoqxe8BLg_wE,595
218
215
  arelle/oim/Load.py,sha256=jLDidnntV78Pwzw0MvOLWSHXC8QxDkHO41TrdmsQuOQ,182874
219
216
  arelle/oim/Validate.py,sha256=IaBClr2KYMiVC_GKYy4_A9gF7hcnm-lxXpQrDCqIWGs,9012
220
217
  arelle/oim/xml/Save.py,sha256=MdaJiGcEo4nbQCX9sRgWfVIoxp6fd2N-wuLiDAS9D-I,607
@@ -223,7 +220,7 @@ arelle/packages/PackageType.py,sha256=2s29OWZ-XpKW1bPJ1kVBcpKMDBr9gzLe25Cukg-YTE
223
220
  arelle/packages/PackageUtils.py,sha256=uraFfkyYQVlY8YdK4j-HgxhkIAOsEaU5Mk4To0ymKxE,575
224
221
  arelle/packages/PackageValidation.py,sha256=y0J6EAR5O8fF51vIrj-2Ur42TObIMvHVFtPXTR-GGOc,7408
225
222
  arelle/packages/report/DetectReportPackage.py,sha256=AemOF0eDbnCR3n6cNTWDb93FttQ18s3jsNQuA-37zM4,305
226
- arelle/packages/report/ReportPackage.py,sha256=zsA-0gu1bfu4LeknQFC0dZpRT1R6vn-M1fAfXZ5BTnI,10114
223
+ arelle/packages/report/ReportPackage.py,sha256=-WIqxvraHmAeyAwYCR_vMkh8Sj_xnQurqdJbu8GmDMM,10494
227
224
  arelle/packages/report/ReportPackageConst.py,sha256=rTs-fV0BztXo_NleIIyN2Y8mpmC_r3eSzUxeZbvSiB8,2612
228
225
  arelle/packages/report/ReportPackageValidator.py,sha256=3Ur_CXUtCPtXzUgDi9t3VI3vcew0I9pq2B-cn_rIkX4,10322
229
226
  arelle/plugin/CacheBuilder.py,sha256=-aDFD3rx83glOprQYO-8gsaIEXcdwB6PFfIq7jy20lo,4489
@@ -235,7 +232,7 @@ arelle/plugin/formulaLoader.py,sha256=_pPZQPAZeNjGj85rvH7QRl4gEjYD7Yhxl1JhuV9wOo
235
232
  arelle/plugin/formulaSaver.py,sha256=STlKyDA-pVUxZoEW57MSu74RdpyHVTxaHvOZyOt0cyg,31385
236
233
  arelle/plugin/formulaXPathChecker.py,sha256=sEEeLHx17XSj8eOgFdzYLBp9ZFk2UUYLOEKtaF_pq34,18795
237
234
  arelle/plugin/functionsMath.py,sha256=Z8N7ok3w1aOusCQA9QvqYwQ8W1j80bb-_4lVclBnNQM,9037
238
- arelle/plugin/inlineXbrlDocumentSet.py,sha256=mG7BVPblkm6A81sAKR8NxjlNDTqlpKoErJTHn7lw1tk,55712
235
+ arelle/plugin/inlineXbrlDocumentSet.py,sha256=34sNw-TJClyvPRGG94xVQtjqzTzPxx01Rg24m5ftsy0,55550
239
236
  arelle/plugin/loadFromExcel.py,sha256=galvvaj9jTKMMRUasCSh1SQnCCBzoN_HEpYWv0fmUdM,124407
240
237
  arelle/plugin/loadFromOIM.py,sha256=dJHnX56bmuY40f6vRMsQ7pJmIWcB5N_3jmYWGGnZSdM,903
241
238
  arelle/plugin/profileCmdLine.py,sha256=uLL0fGshpiwtzyLKAtW0WuXAvcRtZgxQG6swM0e4BHA,2370
@@ -300,32 +297,33 @@ arelle/plugin/transforms/tester.py,sha256=57relfBci8FttRSxHtdUaxlaQPrBhJglssImDe
300
297
  arelle/plugin/validate/CIPC/Const.py,sha256=GSiODyiK8V9P-pV0_DPEKYAhe2wqgcYJP2Qt6xaIyA4,11425
301
298
  arelle/plugin/validate/CIPC/__init__.py,sha256=R6KVETICUpfW--TvVkFNDo-67Kq_KpWz3my2ECkiKxM,14699
302
299
  arelle/plugin/validate/CIPC/config.xml,sha256=4pyn40JAvQQeoRC8I046gZ4ZcmUnekX3TNfYpC5yonI,667
303
- arelle/plugin/validate/DBA/DisclosureSystems.py,sha256=Dp_r-Pa3tahtCfDha2Zc97N0iyrY4Zagb8w2D9ErILg,294
300
+ arelle/plugin/validate/DBA/DisclosureSystems.py,sha256=PDoF8dnhtyiRea3pWhVhO_7Squ2-bi2l71_XZTYPfhk,700
304
301
  arelle/plugin/validate/DBA/PluginValidationDataExtension.py,sha256=F_fKc811Dq7l7hH2zoC67iI3wOmZKqtEBgufoYKyhyc,7210
305
302
  arelle/plugin/validate/DBA/ValidationPluginExtension.py,sha256=UygF7oELnPJcP6Ta0ncy3dy5fnJq-Mz6N2-gEaVhigo,48690
306
303
  arelle/plugin/validate/DBA/__init__.py,sha256=KhmlUkqgsRtEXpu5DZBXFzv43nUTvi-0sdDNRfw5Up4,1564
307
- arelle/plugin/validate/DBA/resources/config.xml,sha256=KHfo7SrjzmjHbfwIJBmESvOOjdIv4Av26BCcZxfn3Pg,875
304
+ arelle/plugin/validate/DBA/resources/config.xml,sha256=uuj9VwvScwuqQpLRR8e1lx3-hRA_nNBfb8MPK14fd4U,1056
308
305
  arelle/plugin/validate/DBA/rules/__init__.py,sha256=FdmlqdX7RE5nnN19PU23zLKzDibEm24UU2xurlfFmrw,10404
309
- arelle/plugin/validate/DBA/rules/fr.py,sha256=IAegA_Fc-Zkjj8qlzFuo_52gNVHW-lAddBFCQw8W8P4,71318
310
- arelle/plugin/validate/DBA/rules/tc.py,sha256=CXPOGHpab9Y-iV84wDXrsE-rPe_d6Uhw4HjEyTBEzq4,1572
311
- arelle/plugin/validate/DBA/rules/th.py,sha256=mDrjescz6106jBGjdH6bipqx48BnxcjHSkNL1qQf0QE,6227
312
- arelle/plugin/validate/DBA/rules/tm.py,sha256=ui9oKBqlAForwkQ9kk9KBiUogTJE5pv1RbIejKASprY,11797
313
- arelle/plugin/validate/DBA/rules/tr.py,sha256=4TootFjl0HXsKZk1XNBCyj-vnjRs4lg35hfiz_b_4wU,14684
306
+ arelle/plugin/validate/DBA/rules/fr.py,sha256=b4EAnPQvswMTJqFUx6S1vRgoNe6S2tfko_w2nILR3q8,72132
307
+ arelle/plugin/validate/DBA/rules/tc.py,sha256=VOZ-OLo9tnCi9eNxJf_pTmba8CQ2s2ea8UtWCFZPhWI,1673
308
+ arelle/plugin/validate/DBA/rules/th.py,sha256=KxQyVHv2VtfuZPIoFDu9QU1oeyTrb7hIQOganmJBLts,6507
309
+ arelle/plugin/validate/DBA/rules/tm.py,sha256=kcGh_rd4dTK5dBrAZtWfm5uYDb6xbcayxi36ZvXjaOA,12500
310
+ arelle/plugin/validate/DBA/rules/tr.py,sha256=iWpD8cIbMqeT-0Fh29P07rYIkNj_ITc7vuW1kFxqeRk,15009
314
311
  arelle/plugin/validate/EBA/__init__.py,sha256=x3zXNcdSDJ3kHfL7kMs0Ve0Vs9oWbzNFVf1TK4Avmy8,45924
315
312
  arelle/plugin/validate/EBA/config.xml,sha256=37wMVUAObK-XEqakqD8zPNog20emYt4a_yfL1AKubF8,2022
316
313
  arelle/plugin/validate/EDINET/Constants.py,sha256=HY3hqaoY_J9q_-letYp-M-dgpDJBJlkxE0_epnaT9h4,10135
317
314
  arelle/plugin/validate/EDINET/ContextRequirement.py,sha256=BejN3uz6TCSzR1qfQm-PZMbkhJlgUH9NVrY2Ux-Ph78,5217
318
- arelle/plugin/validate/EDINET/ControllerPluginData.py,sha256=SGvkou9-lNEdMrlQurCX7zmXDT0yMqjkDvzDPldNFro,12284
315
+ arelle/plugin/validate/EDINET/ControllerPluginData.py,sha256=_HYYNoNGPsb23fXHA3qQhEriKuN84ACzfn_aSy2e9sw,12270
319
316
  arelle/plugin/validate/EDINET/CoverItemRequirements.py,sha256=1YdzlSgc5MlUGyw81Ipv37CLxsdpSw8CO90snjgqLzw,1852
320
317
  arelle/plugin/validate/EDINET/DeiRequirements.py,sha256=ncK5ew66Y1rAsNHAMTHhX4jTrE_XOFGHV5okPB0vEYA,4316
321
318
  arelle/plugin/validate/EDINET/DisclosureSystems.py,sha256=3rKG42Eg-17Xx_KXU_V5yHW6I3LTwQunvf4a44C9k_4,36
322
319
  arelle/plugin/validate/EDINET/FilingFormat.py,sha256=jGZBn_HYiaYGcakQfATblH3SmALynx7ZBtfX5hLFGKQ,18716
323
320
  arelle/plugin/validate/EDINET/FormType.py,sha256=pjTo1_akcMeZldntS81W1hJypehEDjgWPsa2e_4s2xg,4211
324
321
  arelle/plugin/validate/EDINET/ManifestInstance.py,sha256=jJKa0gCidGFRxHtRIpiYZ9GR3Yo2wW7moqRYs4dpLg8,10052
325
- arelle/plugin/validate/EDINET/PluginValidationDataExtension.py,sha256=p_j3KwagHvYVeS6-I2IszHsU7aCgFlaF4VWSHBT-S78,29397
322
+ arelle/plugin/validate/EDINET/NamespaceConfig.py,sha256=ISmb0qI0eD5ORxFTdxBjDMLnAXi_Sk0SWTbnh8vYmak,2712
323
+ arelle/plugin/validate/EDINET/PluginValidationDataExtension.py,sha256=H3RaDKuOC039Eul180JVfs2PX4rtLT-u9A69Q5qrfXg,27167
326
324
  arelle/plugin/validate/EDINET/ReportFolderType.py,sha256=syolCGoicSsOXWxwpETdCiYx0iWt-PNeHQ5udJRSJs0,4604
327
325
  arelle/plugin/validate/EDINET/Statement.py,sha256=twW0Grv4IM_zjCo425YYcdKpPPZqn9t-ROEK2y3AoQ8,9320
328
- arelle/plugin/validate/EDINET/TableOfContentsBuilder.py,sha256=-TsPfIdtgOCdvUh-H8EZo3B5A63ti7rIDXHCUnt_us8,21760
326
+ arelle/plugin/validate/EDINET/TableOfContentsBuilder.py,sha256=wO3J66IU7wVlHh11joxnuLQCZNOVvZDohq3nCiExNbM,25282
329
327
  arelle/plugin/validate/EDINET/UploadContents.py,sha256=o29mDoX48M3S2jQqrJO4ZaulltAPt4vD-qdsWTMCUPc,1196
330
328
  arelle/plugin/validate/EDINET/ValidationPluginExtension.py,sha256=8LNqvXzNaWP54dShEjet5ely4BnM8ByCSyimKpUx3_s,2577
331
329
  arelle/plugin/validate/EDINET/__init__.py,sha256=HbRZlsUlH_nIcEWdODPib6yeUpJAAzvMemwi6UzDBoU,3781
@@ -334,39 +332,39 @@ arelle/plugin/validate/EDINET/resources/cover-item-requirements.json,sha256=K5j2
334
332
  arelle/plugin/validate/EDINET/resources/dei-requirements.csv,sha256=8ILKNn8bXbcgG9V0lc8mxorKDKEjJQWLdBQRMvbqtkI,6518
335
333
  arelle/plugin/validate/EDINET/resources/edinet-taxonomies.xml,sha256=YXaPu-60CI2s0S-vXcLDEXCrrukEAAHyCEk0QRhrYR8,16772
336
334
  arelle/plugin/validate/EDINET/rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
337
- arelle/plugin/validate/EDINET/rules/contexts.py,sha256=1Svq1xkKMVa7rGc6qTj8-uThSFJ7wOINRgI9R4pGfGc,24288
338
- arelle/plugin/validate/EDINET/rules/edinet.py,sha256=FvrhA_cAgweAkAffXDKGyCbjMcNxiPNsKUY3LGh_z0o,97805
335
+ arelle/plugin/validate/EDINET/rules/contexts.py,sha256=iFwyOVHmgVJkj_Y1rKUAF77VMurUvgl3-jejywcolDo,24290
336
+ arelle/plugin/validate/EDINET/rules/edinet.py,sha256=igY2WE8G5jbap4FkoGsMY-105ztDHXByKEZwrDUGP-M,106673
339
337
  arelle/plugin/validate/EDINET/rules/frta.py,sha256=wpX5zK0IfVVYZR9ELy2g_Z_F1Jzhwd9gh_KZC5ALkLg,12756
340
- arelle/plugin/validate/EDINET/rules/gfm.py,sha256=SWiw4olHnrPTjLp733uwhRVF-vpksOpQAy7_xgLbrC4,95880
338
+ arelle/plugin/validate/EDINET/rules/gfm.py,sha256=3RhEpKJR-lQysdWlQue9qWDaKkJBgvodJ2-9W_ckYD8,101071
341
339
  arelle/plugin/validate/EDINET/rules/manifests.py,sha256=MoT9R_a4BzuYdQVbF7RC5wz134Ve68svSdJ3NlpO_AU,4026
342
- arelle/plugin/validate/EDINET/rules/upload.py,sha256=3eA6FfQiGl0K6lVq0dhI1rsRFPf1MXJ9yrb7M9JarNo,54763
340
+ arelle/plugin/validate/EDINET/rules/upload.py,sha256=Rn5JqeUFIcA-JwmHlOh5mfCYjfmW-blmE8Yt5Q3Jz-g,54765
343
341
  arelle/plugin/validate/ESEF/Const.py,sha256=DdoTZkUBlBpwXd_sWle7NlbivRDHz9rCfWKVfUcy4u4,22748
344
342
  arelle/plugin/validate/ESEF/Dimensions.py,sha256=MOJM7vwNPEmV5cu-ZzPrhx3347ZvxgD6643OB2HRnIk,10597
345
343
  arelle/plugin/validate/ESEF/Util.py,sha256=QH3btcGqBpr42M7WSKZLSdNXygZaZLfEiEjlxoG21jE,7950
346
- arelle/plugin/validate/ESEF/__init__.py,sha256=yy6X7Z1lxbnsxuB3Z4XQUtdkkRZMUU3TEAMAKSrVdfA,21005
344
+ arelle/plugin/validate/ESEF/__init__.py,sha256=s1PxTS0PdRbSAuX4N5V5GYgYFtcJiYqv2WFg96Z6Yug,20984
347
345
  arelle/plugin/validate/ESEF/ESEF_2021/DTS.py,sha256=0uVPVysjgJK4yplRUvHO2kZ6M7FC-egIjImN3791koY,26761
348
346
  arelle/plugin/validate/ESEF/ESEF_2021/Image.py,sha256=UDGpb2qFjt6J8MTeevlbDQX8D79Hzv3cZoxvkmDtEvE,4857
349
- arelle/plugin/validate/ESEF/ESEF_2021/ValidateXbrlFinally.py,sha256=xj53y7ScD3Z2H_QD3k7uPSy7frph5SXQkcvsONT6TMI,64004
347
+ arelle/plugin/validate/ESEF/ESEF_2021/ValidateXbrlFinally.py,sha256=pcXtizSkNcw7AhX6CeJY_-F5SrF_CveF4UdItEZa4Wo,64085
350
348
  arelle/plugin/validate/ESEF/ESEF_2021/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
351
- arelle/plugin/validate/ESEF/ESEF_Current/DTS.py,sha256=t8eadnO1paPzHcCaEEs67hg17dSPDlGlDbVpHwJF6UA,29818
352
- arelle/plugin/validate/ESEF/ESEF_Current/ValidateXbrlFinally.py,sha256=Xo00DqQzVL0g5iJFpYQ8QPCjunUFdRg8WdiJfexfGF8,79513
349
+ arelle/plugin/validate/ESEF/ESEF_Current/DTS.py,sha256=CZlhXVtr9h2R5JIZaHQX9Z-LE3pLkiNJU0_jcdcx2VQ,31072
350
+ arelle/plugin/validate/ESEF/ESEF_Current/ValidateXbrlFinally.py,sha256=vhkX476IjK7tc2kHVNbQCxIDpHyUGbb8tOlzttZVocw,80424
353
351
  arelle/plugin/validate/ESEF/ESEF_Current/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
354
- arelle/plugin/validate/ESEF/resources/authority-validations.json,sha256=8Gk5hXL-ya2AdhWYk5LarTxmlqtSzay1prJ_n3_IWnw,19009
352
+ arelle/plugin/validate/ESEF/resources/authority-validations.json,sha256=cVdIuP0BJDnWBILJh00NGtGz_AuNhF0KYjPUnul6DqY,19249
355
353
  arelle/plugin/validate/ESEF/resources/config.xml,sha256=gcaHhXRHbbxXPAsqwPpZOgyJ6NNbNYsKii_VQV4YAdY,4800
356
354
  arelle/plugin/validate/FERC/__init__.py,sha256=rC1OYNBWnoXowEohiR9yagHtAi_NPAlmaahRSQhSdS4,11325
357
355
  arelle/plugin/validate/FERC/config.xml,sha256=bn9b8eCqJA1J62rYq1Nz85wJrMGAahVmmnIUQZyerjo,1919
358
356
  arelle/plugin/validate/FERC/resources/ferc-utr.xml,sha256=OCRj9IUpdXATCBXKbB71apYx9kxcNtZW-Hq4s-avsRY,2663
359
- arelle/plugin/validate/NL/DisclosureSystems.py,sha256=urRmYJ8RnGPlTgSVKW7zGN4_4CtL3OVKlcI3LwTpBz4,561
360
- arelle/plugin/validate/NL/PluginValidationDataExtension.py,sha256=2seCaRKdOxFcfCcigk6njUmSkaWGg8haV4b54AL1hKY,33553
361
- arelle/plugin/validate/NL/ValidationPluginExtension.py,sha256=oeiHGtCvpF9oCELWV-7Go5Md1UuR8Ogw_GQuySpOcv8,17846
357
+ arelle/plugin/validate/NL/DisclosureSystems.py,sha256=cvw1rNEzyeVgT_ydhcoAYouZQ8i90B3yn-E-a1KfLoA,1189
358
+ arelle/plugin/validate/NL/PluginValidationDataExtension.py,sha256=TLAhY-3VgURLQpR05biL6tTbuGM49uXjE1LbnS1tFto,34788
359
+ arelle/plugin/validate/NL/ValidationPluginExtension.py,sha256=oUKL4JqZa6XR5i_tillYhqLukg95HjMx5kWgyeKNhQ0,20970
362
360
  arelle/plugin/validate/NL/__init__.py,sha256=W-SHohiAWM7Yi77gAbt-D3vvZNAB5s1j16mHCTFta6w,3158
363
- arelle/plugin/validate/NL/resources/config.xml,sha256=qBE6zywFSmemBSWonuTII5iuOCUlNb1nvkpMbsZb5PM,1853
361
+ arelle/plugin/validate/NL/resources/config.xml,sha256=aM61Xj06zbEWT5Y5AZFiJ5w5K_N12PXYIAfthxIuLXA,2693
364
362
  arelle/plugin/validate/NL/rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
365
- arelle/plugin/validate/NL/rules/br_kvk.py,sha256=O_8TlrK5SItLUgLw2qx9LSXh_bPNSPHZ_PJY8Q11MOk,15779
366
- arelle/plugin/validate/NL/rules/fg_nl.py,sha256=OJF2EYx4KDTdNggHiw5Trq5S5g7WGpbb7YvO6_IrrGU,10704
367
- arelle/plugin/validate/NL/rules/fr_kvk.py,sha256=kYqXt45S6eM32Yg9ii7pUhOMfJaHurgYqQ73FyQALs8,8171
368
- arelle/plugin/validate/NL/rules/fr_nl.py,sha256=ZoyiRsTyqTNZB_VgcdabmeNi6v7DY6jMxzaP6ppLtIU,31387
369
- arelle/plugin/validate/NL/rules/nl_kvk.py,sha256=hysgvKFIOeTHJedadAITp4Ju8GgU93OXp1yqr9TA9wg,90032
363
+ arelle/plugin/validate/NL/rules/br_kvk.py,sha256=W3lmPu-qHjC7u1xsEyra7bDRi8fxXB25PUm0ucHluWc,14773
364
+ arelle/plugin/validate/NL/rules/fg_nl.py,sha256=ILdApd_oZ1tdZ2AvgKuHDlhJCBFxEymBNobewOPcYZ0,9989
365
+ arelle/plugin/validate/NL/rules/fr_kvk.py,sha256=y5UMaHm4ug206byfzM5xJ5HBp0ewM-8Ht5SozkPjVic,7393
366
+ arelle/plugin/validate/NL/rules/fr_nl.py,sha256=M7-kSxF1ee3YrpPMC6mTRIL2g9mqvwnim_6dGfOyDfM,28807
367
+ arelle/plugin/validate/NL/rules/nl_kvk.py,sha256=nEyZGJMwi8JCNL483mbQld65IfcyijCjS0A03To5jME,94937
370
368
  arelle/plugin/validate/ROS/DisclosureSystems.py,sha256=rJ81mwQDYTi6JecFZ_zhqjjz3VNQRgjHNSh0wcQWAQE,18
371
369
  arelle/plugin/validate/ROS/PluginValidationDataExtension.py,sha256=9_dxO20B3TRVElv0jZ_YW7tZbG3HihzRowg7W-397is,4379
372
370
  arelle/plugin/validate/ROS/ValidationPluginExtension.py,sha256=U5EtwSW3eGvvvgVk9JgcUueJn604a4J6C2Fsk_CHQy0,874
@@ -374,9 +372,9 @@ arelle/plugin/validate/ROS/__init__.py,sha256=KuWg1MHVzA2S6eaHFptvP3Vu_5gQWf3OUY
374
372
  arelle/plugin/validate/ROS/config.xml,sha256=ZCpCFgr1ZAjoUuhb1eRpDnmKrae-sXA9yl6SOWnrfm8,654
375
373
  arelle/plugin/validate/ROS/resources/config.xml,sha256=HXWume5HlrAqOx5AtiWWqgADbRatA8YSfm_JvZGwdgQ,657
376
374
  arelle/plugin/validate/ROS/rules/__init__.py,sha256=wW7BUAIb7sRkOxC1Amc_ZKrz03FM-Qh1TyZe6wxYaAU,1567
377
- arelle/plugin/validate/ROS/rules/ros.py,sha256=CRZkZfsKe4y1B-PDkazQ_cD5LRZBk1GJjTscCZXXYUI,21173
375
+ arelle/plugin/validate/ROS/rules/ros.py,sha256=KhWkgi3pX3jJVlAXU32vIK9Yea9GhFlgO9U4cS2_q9g,21224
378
376
  arelle/plugin/validate/UK/ValidateUK.py,sha256=UwNR3mhFzWNn6RKLSiC7j3LlMlConOx-9gWGovKamHA,61035
379
- arelle/plugin/validate/UK/__init__.py,sha256=tKAcsYzwopWbhY863sZE7kmOEaQbAGSABcAouhzTPcc,26589
377
+ arelle/plugin/validate/UK/__init__.py,sha256=pfTjZUAtIYO7ILdA4GUDSMTP9QSgJOoh4I0m7D4RMac,29897
380
378
  arelle/plugin/validate/UK/config.xml,sha256=mUFhWDfBzGTn7v0ZSmf4HaweQTMJh_4ZcJmD9mzCHrA,1547
381
379
  arelle/plugin/validate/UK/consistencyChecksByName.json,sha256=BgB9YAWzmcsX-_rU74RBkABwEsS75vrMlwBHsYCz2R0,25247
382
380
  arelle/plugin/validate/UK/hmrc-taxonomies.xml,sha256=3lR-wb2sooAddQkVqqRzG_VqLuHq_MQ8kIaXAQs1KVk,9623
@@ -674,7 +672,7 @@ arelle/resources/libs/Tktable2.11/win-x86_64/Tktable.dll,sha256=R-Xf_J9tYjTe4pZE
674
672
  arelle/resources/libs/Tktable2.11/win-x86_64/pkgIndex.tcl,sha256=tmkATyDWsKAA3NgvlNGhOOdTWdBD91X1BgAHmybd_lY,151
675
673
  arelle/resources/libs/Tktable2.11/win-x86_64/tkTable.tcl,sha256=JrSZRngZFHtw8Svpzl68AVoffCuzzqG0zs3Zxe8UUoM,24094
676
674
  arelle/utils/Contexts.py,sha256=j9uSBAXGkunlJGC9SscCbb1cj3oU_J3b_yjdhj2B4a4,1714
677
- arelle/utils/EntryPointDetection.py,sha256=TciYbi49dv7fs5inFQR-G6rKCB2XfX_TLgDJ_3FcRK0,7680
675
+ arelle/utils/EntryPointDetection.py,sha256=eQQiy0gTFUuMt49WMsd2It9WI5CXTdyk054oI95jjn8,8067
678
676
  arelle/utils/Equivalence.py,sha256=Ac6sENvh-WHJlBJneV_-6n_MF2C1filHETkUEiucLJg,525
679
677
  arelle/utils/PluginData.py,sha256=GUnuZaApm1J4Xm9ZA1U2M1aask-AaNGviLtc0fgXbFg,265
680
678
  arelle/utils/PluginHooks.py,sha256=vF3lSJIhF2SwvcQLOvX9wYMiTV7-1TGdrMghc00DNIE,35970
@@ -682,16 +680,16 @@ arelle/utils/Units.py,sha256=c9bwnu9Xnm00gC9Q6qQ1ogsEeTEXGRH7rahlEbrEWnQ,1201
682
680
  arelle/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
683
681
  arelle/utils/validate/Decorator.py,sha256=8LGmA171HZgKrALtsMKyHqMNM-XCdwJOv6KpZz4pC2c,3161
684
682
  arelle/utils/validate/DetectScriptsInXhtml.py,sha256=RFBh_Z24OjR69s71qQzSzbxdU-WCTWuvYlONN-BgpZ0,2098
685
- arelle/utils/validate/ESEFImage.py,sha256=R3_iWmLYBbIAnPuNpuRi8bqa3MAPXc8MDumfizkAz_8,15485
686
- arelle/utils/validate/Validation.py,sha256=D6Z01ekvazCXuRQZxbQGdYebg-gVmhgf8sRT8Kr0sCM,1078
687
- arelle/utils/validate/ValidationPlugin.py,sha256=KuHXHthAwE8vfEC8bd5oJrCfnbPrSfrO2KHB973CWvs,14474
683
+ arelle/utils/validate/ESEFImage.py,sha256=oF947dF3dHUmn8I2YI7-JLRFiii4sxQlQCgnTSI0WTI,15494
684
+ arelle/utils/validate/Validation.py,sha256=3ynAZ_zcxwiWWCWkQvWLbxG8KE_sEczUYcHp9RMWZFE,1356
685
+ arelle/utils/validate/ValidationPlugin.py,sha256=M33qJSCZrboZBNAcpIXZwZ9e3dyFyAfSV7rWikj_Ecg,14552
688
686
  arelle/utils/validate/ValidationUtil.py,sha256=E4R5Qp9yfCxFiF27eickmA7g0UgkkjND510DIpI-kVc,1840
689
687
  arelle/utils/validate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
690
688
  arelle/webserver/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
691
689
  arelle/webserver/bottle.py,sha256=P-JECd9MCTNcxCnKoDUvGcoi03ezYVOgoWgv2_uH-6M,362
692
- arelle_release-2.37.71.dist-info/licenses/LICENSE.md,sha256=Q0tn6q0VUbr-NM8916513NCIG8MNzo24Ev-sxMUBRZc,3959
693
- arelle_release-2.37.71.dist-info/METADATA,sha256=qyJL1TtIL6_-f1m4G8-l7prlen3XbpSUUGCkg2qqf5w,9355
694
- arelle_release-2.37.71.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
695
- arelle_release-2.37.71.dist-info/entry_points.txt,sha256=Uj5niwfwVsx3vaQ3fYj8hrZ1xpfCJyTUA09tYKWbzpo,111
696
- arelle_release-2.37.71.dist-info/top_level.txt,sha256=fwU7SYawL4_r-sUMRg7r1nYVGjFMSDvRWx8VGAXEw7w,7
697
- arelle_release-2.37.71.dist-info/RECORD,,
690
+ arelle_release-2.38.0.dist-info/licenses/LICENSE.md,sha256=PUrQz5RiqQE1ZPHMgdh4eShYuDaAsLOrCFhlarmzACw,3850
691
+ arelle_release-2.38.0.dist-info/METADATA,sha256=u6Wf8Tfbs9r1cZ5WXNSg7RDR-E8dwlmG-XY_c4ilyh4,9545
692
+ arelle_release-2.38.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
693
+ arelle_release-2.38.0.dist-info/entry_points.txt,sha256=Uj5niwfwVsx3vaQ3fYj8hrZ1xpfCJyTUA09tYKWbzpo,111
694
+ arelle_release-2.38.0.dist-info/top_level.txt,sha256=fwU7SYawL4_r-sUMRg7r1nYVGjFMSDvRWx8VGAXEw7w,7
695
+ arelle_release-2.38.0.dist-info/RECORD,,
@@ -53,9 +53,6 @@ openpyxl Copyright (c) 2010 openpyxl
53
53
  Pillow: Copyright © 2010-2022 by Alex Clark and contributors
54
54
  [License](https://github.com/python-pillow/Pillow/blob/main/LICENSE)
55
55
 
56
- pycountry: Copyright (c) 2008-2015 gocept gmbh & co. kg
57
- [License](https://pypi.org/project/gocept.country/)
58
-
59
56
  PyParsing: Copyright © 2003-2022 Paul McGuire.
60
57
  [License](https://github.com/pyparsing/pyparsing/blob/master/LICENSE)
61
58
 
@@ -1,9 +0,0 @@
1
- """
2
- See COPYRIGHT.md for copyright information.
3
- """
4
- from __future__ import annotations
5
-
6
-
7
- class CommentBase:
8
- def __init__(self, text: str) -> None:
9
- self._text = text
@@ -1,11 +0,0 @@
1
- """
2
- See COPYRIGHT.md for copyright information.
3
- """
4
- from __future__ import annotations
5
-
6
-
7
- class ElementBase:
8
- def __init__(self, *children: ElementBase, attrib: dict[str, str] | None = None, nsmap: dict[str, str] | None = None, **extra: str) -> None:
9
- self._children = children
10
- self._attrib = attrib if attrib is not None else {}
11
- self._nsmap = nsmap if nsmap is not None else {}
arelle/model/PIBase.py DELETED
@@ -1,10 +0,0 @@
1
- """
2
- See COPYRIGHT.md for copyright information.
3
- """
4
- from __future__ import annotations
5
-
6
-
7
- class PIBase:
8
- def __init__(self, target: str, text: str | None = None) -> None:
9
- self._target = target
10
- self._text = text if text is not None else ""
arelle/model/__init__.py DELETED
@@ -1,15 +0,0 @@
1
- """
2
- See COPYRIGHT.md for copyright information.
3
- """
4
- from arelle.BetaFeatures import newObjectModelEnabled
5
-
6
- # The if statement is negated here so that from mypy's perspective the types
7
- # inherit from the lxml object model until the new models are ready to be used.
8
- if not newObjectModelEnabled():
9
- from lxml.etree import CommentBase as CommentBase
10
- from lxml.etree import ElementBase as ElementBase
11
- from lxml.etree import PIBase as PIBase
12
- else:
13
- from .CommentBase import CommentBase
14
- from .ElementBase import ElementBase # type: ignore[assignment]
15
- from .PIBase import PIBase