arelle-release 2.37.46__py3-none-any.whl → 2.37.48__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of arelle-release might be problematic. Click here for more details.
- arelle/CntlrCmdLine.py +10 -1
- arelle/ErrorManager.py +14 -5
- arelle/ModelObjectFactory.py +18 -2
- arelle/Validate.py +4 -0
- arelle/_version.py +2 -2
- arelle/plugin/validate/DBA/ValidationPluginExtension.py +2 -1
- arelle/plugin/validate/EDINET/ControllerPluginData.py +84 -0
- arelle/plugin/validate/EDINET/PluginValidationDataExtension.py +0 -114
- arelle/plugin/validate/EDINET/UploadContents.py +17 -0
- arelle/plugin/validate/EDINET/ValidationPluginExtension.py +8 -2
- arelle/plugin/validate/EDINET/__init__.py +5 -0
- arelle/plugin/validate/EDINET/rules/upload.py +66 -75
- arelle/plugin/validate/NL/ValidationPluginExtension.py +3 -1
- arelle/plugin/validate/ROS/ValidationPluginExtension.py +3 -1
- arelle/utils/PluginHooks.py +32 -0
- arelle/utils/validate/ValidationPlugin.py +54 -8
- {arelle_release-2.37.46.dist-info → arelle_release-2.37.48.dist-info}/METADATA +1 -1
- {arelle_release-2.37.46.dist-info → arelle_release-2.37.48.dist-info}/RECORD +22 -106
- arelle/archive/CustomLogger.py +0 -43
- arelle/archive/LoadEFMvalidate.py +0 -32
- arelle/archive/LoadSavePreLbCsv.py +0 -26
- arelle/archive/LoadValidate.cs +0 -31
- arelle/archive/LoadValidate.py +0 -36
- arelle/archive/LoadValidateCmdLine.java +0 -69
- arelle/archive/LoadValidatePostedZip.java +0 -57
- arelle/archive/LoadValidateWebService.java +0 -34
- arelle/archive/SaveTableToExelle.py +0 -140
- arelle/archive/TR3toTR4.py +0 -88
- arelle/archive/plugin/ESEF_2022/__init__.py +0 -47
- arelle/archive/plugin/bigInstance.py +0 -394
- arelle/archive/plugin/cmdWebServerExtension.py +0 -43
- arelle/archive/plugin/crashTest.py +0 -38
- arelle/archive/plugin/functionsXmlCreation.py +0 -106
- arelle/archive/plugin/hello_i18n.pot +0 -26
- arelle/archive/plugin/hello_i18n.py +0 -32
- arelle/archive/plugin/importTestChild1.py +0 -21
- arelle/archive/plugin/importTestChild2.py +0 -22
- arelle/archive/plugin/importTestGrandchild1.py +0 -21
- arelle/archive/plugin/importTestGrandchild2.py +0 -21
- arelle/archive/plugin/importTestImported1.py +0 -23
- arelle/archive/plugin/importTestImported11.py +0 -22
- arelle/archive/plugin/importTestParent.py +0 -48
- arelle/archive/plugin/instanceInfo.py +0 -306
- arelle/archive/plugin/loadFromOIM-2018.py +0 -1282
- arelle/archive/plugin/locale/fr/LC_MESSAGES/hello_i18n.po +0 -25
- arelle/archive/plugin/objectmaker.py +0 -285
- arelle/archive/plugin/packagedImportTest/__init__.py +0 -47
- arelle/archive/plugin/packagedImportTest/importTestChild1.py +0 -21
- arelle/archive/plugin/packagedImportTest/importTestChild2.py +0 -22
- arelle/archive/plugin/packagedImportTest/importTestGrandchild1.py +0 -21
- arelle/archive/plugin/packagedImportTest/importTestGrandchild2.py +0 -21
- arelle/archive/plugin/packagedImportTest/importTestImported1.py +0 -24
- arelle/archive/plugin/packagedImportTest/importTestImported11.py +0 -21
- arelle/archive/plugin/packagedImportTest/subdir/importTestImported111.py +0 -21
- arelle/archive/plugin/packagedImportTest/subdir/subsubdir/importTestImported1111.py +0 -21
- arelle/archive/plugin/sakaCalendar.py +0 -215
- arelle/archive/plugin/saveInstanceInfoset.py +0 -121
- arelle/archive/plugin/sphinx/FormulaGenerator.py +0 -823
- arelle/archive/plugin/sphinx/SphinxContext.py +0 -404
- arelle/archive/plugin/sphinx/SphinxEvaluator.py +0 -783
- arelle/archive/plugin/sphinx/SphinxMethods.py +0 -1287
- arelle/archive/plugin/sphinx/SphinxParser.py +0 -1093
- arelle/archive/plugin/sphinx/SphinxValidator.py +0 -163
- arelle/archive/plugin/sphinx/US-GAAP Ratios Example.xsr +0 -52
- arelle/archive/plugin/sphinx/__init__.py +0 -285
- arelle/archive/plugin/streamingExtensions.py +0 -335
- arelle/archive/plugin/updateTableLB.py +0 -242
- arelle/archive/plugin/validate/SBRnl/CustomLoader.py +0 -19
- arelle/archive/plugin/validate/SBRnl/DTS.py +0 -305
- arelle/archive/plugin/validate/SBRnl/Dimensions.py +0 -357
- arelle/archive/plugin/validate/SBRnl/Document.py +0 -799
- arelle/archive/plugin/validate/SBRnl/Filing.py +0 -467
- arelle/archive/plugin/validate/SBRnl/__init__.py +0 -75
- arelle/archive/plugin/validate/SBRnl/config.xml +0 -26
- arelle/archive/plugin/validate/SBRnl/sbr-nl-taxonomies.xml +0 -754
- arelle/archive/plugin/validate/USBestPractices.py +0 -570
- arelle/archive/plugin/validate/USCorpAction.py +0 -557
- arelle/archive/plugin/validate/USSecTagging.py +0 -337
- arelle/archive/plugin/validate/XDC/__init__.py +0 -77
- arelle/archive/plugin/validate/XDC/config.xml +0 -20
- arelle/archive/plugin/validate/XFsyntax/__init__.py +0 -64
- arelle/archive/plugin/validate/XFsyntax/xf.py +0 -2227
- arelle/archive/plugin/validate/calc2.py +0 -536
- arelle/archive/plugin/validateSchemaLxml.py +0 -156
- arelle/archive/plugin/validateTableInfoset.py +0 -52
- arelle/archive/us-gaap-dei-docType-extraction-frm.xml +0 -90
- arelle/archive/us-gaap-dei-ratio-cash-frm.xml +0 -150
- arelle/examples/plugin/formulaSuiteConverter.py +0 -212
- arelle/examples/plugin/functionsCustom.py +0 -59
- arelle/examples/plugin/hello_dolly.py +0 -64
- arelle/examples/plugin/multi.py +0 -58
- arelle/examples/plugin/rssSaveOim.py +0 -96
- arelle/examples/plugin/validate/XYZ/DisclosureSystems.py +0 -2
- arelle/examples/plugin/validate/XYZ/PluginValidationDataExtension.py +0 -10
- arelle/examples/plugin/validate/XYZ/ValidationPluginExtension.py +0 -49
- arelle/examples/plugin/validate/XYZ/__init__.py +0 -75
- arelle/examples/plugin/validate/XYZ/resources/config.xml +0 -16
- arelle/examples/plugin/validate/XYZ/rules/__init__.py +0 -0
- arelle/examples/plugin/validate/XYZ/rules/rules01.py +0 -110
- arelle/examples/plugin/validate/XYZ/rules/rules02.py +0 -59
- arelle/scripts-macOS/startWebServer.command +0 -3
- arelle/scripts-unix/startWebServer.sh +0 -1
- arelle/scripts-windows/startWebServer.bat +0 -5
- {arelle_release-2.37.46.dist-info → arelle_release-2.37.48.dist-info}/WHEEL +0 -0
- {arelle_release-2.37.46.dist-info → arelle_release-2.37.48.dist-info}/entry_points.txt +0 -0
- {arelle_release-2.37.46.dist-info → arelle_release-2.37.48.dist-info}/licenses/LICENSE.md +0 -0
- {arelle_release-2.37.46.dist-info → arelle_release-2.37.48.dist-info}/top_level.txt +0 -0
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
See COPYRIGHT.md for copyright information.
|
|
3
|
-
"""
|
|
4
|
-
from __future__ import annotations
|
|
5
|
-
|
|
6
|
-
from collections.abc import Iterable
|
|
7
|
-
from typing import Any, cast
|
|
8
|
-
|
|
9
|
-
from arelle.ValidateXbrl import ValidateXbrl
|
|
10
|
-
from arelle.XmlValidate import VALID
|
|
11
|
-
from arelle.typing import TypeGetText
|
|
12
|
-
from arelle.utils.PluginHooks import ValidationHook
|
|
13
|
-
from arelle.utils.validate.Decorator import validation
|
|
14
|
-
from arelle.utils.validate.Validation import Validation
|
|
15
|
-
from ..DisclosureSystems import DISCLOSURE_SYSTEM_2022, DISCLOSURE_SYSTEM_2023
|
|
16
|
-
from ..PluginValidationDataExtension import PluginValidationDataExtension
|
|
17
|
-
|
|
18
|
-
_: TypeGetText
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
# rule 01.01 (2022)
|
|
22
|
-
@validation(
|
|
23
|
-
hook=ValidationHook.XBRL_FINALLY,
|
|
24
|
-
disclosureSystems=DISCLOSURE_SYSTEM_2022,
|
|
25
|
-
)
|
|
26
|
-
def rule01_01_2022(
|
|
27
|
-
pluginData: PluginValidationDataExtension,
|
|
28
|
-
val: ValidateXbrl,
|
|
29
|
-
*args: Any,
|
|
30
|
-
**kwargs: Any,
|
|
31
|
-
) -> Iterable[Validation]:
|
|
32
|
-
if "Cash" not in val.modelXbrl.factsByLocalName:
|
|
33
|
-
yield Validation.error(
|
|
34
|
-
codes="XYZ.01.01",
|
|
35
|
-
msg=_("Cash must be reported."),
|
|
36
|
-
modelObject=val.modelXbrl,
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
# rule 01.01 (2023)
|
|
41
|
-
@validation(
|
|
42
|
-
hook=ValidationHook.XBRL_FINALLY,
|
|
43
|
-
disclosureSystems=DISCLOSURE_SYSTEM_2023,
|
|
44
|
-
)
|
|
45
|
-
def rule01_01_2023(
|
|
46
|
-
pluginData: PluginValidationDataExtension,
|
|
47
|
-
val: ValidateXbrl,
|
|
48
|
-
*args: Any,
|
|
49
|
-
**kwargs: Any,
|
|
50
|
-
) -> Iterable[Validation]:
|
|
51
|
-
conceptLocalNamesWithPositiveFactValues = pretendExpensiveOperation(pluginData, val)
|
|
52
|
-
if "Cash" not in conceptLocalNamesWithPositiveFactValues:
|
|
53
|
-
yield Validation.warning(
|
|
54
|
-
codes="XYZ.01.01",
|
|
55
|
-
msg=_("Cash should be reported."),
|
|
56
|
-
modelObject=val.modelXbrl,
|
|
57
|
-
)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
@validation(hook=ValidationHook.FINALLY)
|
|
61
|
-
def rule01_02(
|
|
62
|
-
pluginData: PluginValidationDataExtension,
|
|
63
|
-
val: ValidateXbrl,
|
|
64
|
-
*args: Any,
|
|
65
|
-
**kwargs: Any,
|
|
66
|
-
) -> Iterable[Validation]:
|
|
67
|
-
numXbrlErrors = len(val.modelXbrl.errors)
|
|
68
|
-
if numXbrlErrors > 0:
|
|
69
|
-
yield Validation.error(
|
|
70
|
-
codes="XYZ.01.02",
|
|
71
|
-
msg=_("Invalid report %(numXbrlErrors)s errors detected."),
|
|
72
|
-
modelObject=val.modelXbrl,
|
|
73
|
-
numXbrlErrors=numXbrlErrors,
|
|
74
|
-
)
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
@validation(
|
|
78
|
-
hook=ValidationHook.XBRL_FINALLY,
|
|
79
|
-
disclosureSystems=DISCLOSURE_SYSTEM_2023,
|
|
80
|
-
)
|
|
81
|
-
def rule01_03(
|
|
82
|
-
pluginData: PluginValidationDataExtension,
|
|
83
|
-
val: ValidateXbrl,
|
|
84
|
-
*args: Any,
|
|
85
|
-
**kwargs: Any,
|
|
86
|
-
) -> Iterable[Validation]:
|
|
87
|
-
conceptLocalNamesWithPositiveFactValues = pretendExpensiveOperation(pluginData, val)
|
|
88
|
-
if "UnitsSold" not in conceptLocalNamesWithPositiveFactValues:
|
|
89
|
-
yield Validation.error(
|
|
90
|
-
codes="XYZ.01.03",
|
|
91
|
-
msg=_("UnitsSold must be reported."),
|
|
92
|
-
modelObject=val.modelXbrl,
|
|
93
|
-
)
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
def pretendExpensiveOperation(
|
|
97
|
-
pluginData: PluginValidationDataExtension,
|
|
98
|
-
val: ValidateXbrl,
|
|
99
|
-
) -> set[str]:
|
|
100
|
-
positiveFactConcepts = pluginData.positiveFactConcepts
|
|
101
|
-
if positiveFactConcepts is None:
|
|
102
|
-
positiveFactConcepts = {
|
|
103
|
-
fact.concept.name
|
|
104
|
-
for fact in val.modelXbrl.facts
|
|
105
|
-
if fact.isNumeric
|
|
106
|
-
and getattr(fact, "xValid", 0) >= VALID
|
|
107
|
-
and cast(int, fact.xValue) > 0
|
|
108
|
-
}
|
|
109
|
-
pluginData.positiveFactConcepts = positiveFactConcepts
|
|
110
|
-
return positiveFactConcepts
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
See COPYRIGHT.md for copyright information.
|
|
3
|
-
"""
|
|
4
|
-
from __future__ import annotations
|
|
5
|
-
|
|
6
|
-
from collections.abc import Iterable
|
|
7
|
-
from typing import Any
|
|
8
|
-
|
|
9
|
-
from arelle import XbrlConst
|
|
10
|
-
from arelle.ModelDocument import ModelDocument, Type as ModelDocumentType
|
|
11
|
-
from arelle.ValidateXbrl import ValidateXbrl
|
|
12
|
-
from arelle.typing import TypeGetText
|
|
13
|
-
from arelle.utils.PluginHooks import ValidationHook
|
|
14
|
-
from arelle.utils.validate.Decorator import validation
|
|
15
|
-
from arelle.utils.validate.Validation import Validation
|
|
16
|
-
from ..DisclosureSystems import DISCLOSURE_SYSTEM_2022
|
|
17
|
-
from ..PluginValidationDataExtension import PluginValidationDataExtension
|
|
18
|
-
|
|
19
|
-
_: TypeGetText
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
@validation(hook=ValidationHook.XBRL_DTS_DOCUMENT)
|
|
23
|
-
def rule02_01(
|
|
24
|
-
pluginData: PluginValidationDataExtension,
|
|
25
|
-
val: ValidateXbrl,
|
|
26
|
-
modelDocument: ModelDocument,
|
|
27
|
-
isFilingDocument: bool,
|
|
28
|
-
*args: Any,
|
|
29
|
-
**kwargs: Any,
|
|
30
|
-
) -> Iterable[Validation]:
|
|
31
|
-
if (
|
|
32
|
-
modelDocument.type == ModelDocumentType.SCHEMA
|
|
33
|
-
and modelDocument.targetNamespace is not None
|
|
34
|
-
and len(modelDocument.targetNamespace) > 100
|
|
35
|
-
):
|
|
36
|
-
yield Validation.error(
|
|
37
|
-
codes="XYZ.02.01",
|
|
38
|
-
msg=_("TargetNamespace is too long %(namespace)s."),
|
|
39
|
-
modelObject=val.modelXbrl,
|
|
40
|
-
namespace=modelDocument.targetNamespace,
|
|
41
|
-
)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
@validation(
|
|
45
|
-
hook=ValidationHook.XBRL_FINALLY,
|
|
46
|
-
excludeDisclosureSystems=DISCLOSURE_SYSTEM_2022,
|
|
47
|
-
)
|
|
48
|
-
def rule02_02(
|
|
49
|
-
pluginData: PluginValidationDataExtension,
|
|
50
|
-
val: ValidateXbrl,
|
|
51
|
-
*args: Any,
|
|
52
|
-
**kwargs: Any,
|
|
53
|
-
) -> Iterable[Validation]:
|
|
54
|
-
if val.modelXbrl.relationshipSet(XbrlConst.summationItem):
|
|
55
|
-
yield Validation.error(
|
|
56
|
-
codes="XYZ.02.02",
|
|
57
|
-
msg=_("XBRL 2.1 calculations detected. XYZ 2023 taxonomy requires calc 1.1."),
|
|
58
|
-
modelObject=val.modelXbrl,
|
|
59
|
-
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
./arelleCmdLine --webserver localhost:8080
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|