arelle-release 2.37.1__py3-none-any.whl → 2.37.2__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/_version.py +2 -2
- arelle/plugin/inlineXbrlDocumentSet.py +1 -1
- arelle/plugin/validate/NL/PluginValidationDataExtension.py +8 -0
- arelle/plugin/validate/NL/rules/nl_kvk.py +30 -3
- {arelle_release-2.37.1.dist-info → arelle_release-2.37.2.dist-info}/METADATA +1 -1
- {arelle_release-2.37.1.dist-info → arelle_release-2.37.2.dist-info}/RECORD +10 -10
- {arelle_release-2.37.1.dist-info → arelle_release-2.37.2.dist-info}/WHEEL +0 -0
- {arelle_release-2.37.1.dist-info → arelle_release-2.37.2.dist-info}/entry_points.txt +0 -0
- {arelle_release-2.37.1.dist-info → arelle_release-2.37.2.dist-info}/licenses/LICENSE.md +0 -0
- {arelle_release-2.37.1.dist-info → arelle_release-2.37.2.dist-info}/top_level.txt +0 -0
arelle/_version.py
CHANGED
|
@@ -208,7 +208,7 @@ def inlineXbrlDocumentSetLoader(modelXbrl, normalizedUri, filepath, isEntry=Fals
|
|
|
208
208
|
elif "ixdsTarget" in kwargs: # passed from validate (multio test cases)
|
|
209
209
|
_target = kwargs["ixdsTarget"]
|
|
210
210
|
else:
|
|
211
|
-
_target = modelXbrl.modelManager.formulaOptions.parameterValues["ixdsTarget"][1]
|
|
211
|
+
_target = modelXbrl.modelManager.formulaOptions.parameterValues[qname("ixdsTarget")][1]
|
|
212
212
|
modelXbrl.ixdsTarget = None if _target == DEFAULT_TARGET else _target or None
|
|
213
213
|
except (KeyError, AttributeError, IndexError, TypeError):
|
|
214
214
|
pass # set later in selectTargetDocument plugin method
|
|
@@ -14,6 +14,7 @@ from arelle.utils.PluginData import PluginData
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
XBRLI_IDENTIFIER_PATTERN = re.compile(r"^(?!00)\d{8}$")
|
|
17
|
+
XBRLI_IDENTIFIER_SCHEMA = 'http://www.kvk.nl/kvk-id'
|
|
17
18
|
|
|
18
19
|
@dataclass
|
|
19
20
|
class PluginValidationDataExtension(PluginData):
|
|
@@ -31,6 +32,7 @@ class PluginValidationDataExtension(PluginData):
|
|
|
31
32
|
textFormattingWrapper: str
|
|
32
33
|
|
|
33
34
|
_contextsByDocument: dict[str, list[ModelContext]] | None = None
|
|
35
|
+
_entityIdentifiers: set[tuple[str, str]] | None = None
|
|
34
36
|
_factsByDocument: dict[str, list[ModelFact]] | None = None
|
|
35
37
|
_unitsByDocument: dict[str, list[ModelUnit]] | None = None
|
|
36
38
|
|
|
@@ -43,6 +45,12 @@ class PluginValidationDataExtension(PluginData):
|
|
|
43
45
|
self._contextsByDocument = dict(contextsByDocument)
|
|
44
46
|
return self._contextsByDocument
|
|
45
47
|
|
|
48
|
+
def entityIdentifiersInDocument(self, modelXbrl: ModelXbrl) -> set[tuple[str, str]]:
|
|
49
|
+
if self._entityIdentifiers is not None:
|
|
50
|
+
return self._entityIdentifiers
|
|
51
|
+
self._entityIdentifiers = {context.entityIdentifier for context in modelXbrl.contexts.values()}
|
|
52
|
+
return self._entityIdentifiers
|
|
53
|
+
|
|
46
54
|
def factsByDocument(self, modelXbrl: ModelXbrl) -> dict[str, list[ModelFact]]:
|
|
47
55
|
if self._factsByDocument is not None:
|
|
48
56
|
return self._factsByDocument
|
|
@@ -21,7 +21,7 @@ from arelle.utils.validate.Validation import Validation
|
|
|
21
21
|
from ..DisclosureSystems import (
|
|
22
22
|
DISCLOSURE_SYSTEM_INLINE_NT19
|
|
23
23
|
)
|
|
24
|
-
from ..PluginValidationDataExtension import PluginValidationDataExtension, XBRLI_IDENTIFIER_PATTERN
|
|
24
|
+
from ..PluginValidationDataExtension import PluginValidationDataExtension, XBRLI_IDENTIFIER_PATTERN, XBRLI_IDENTIFIER_SCHEMA
|
|
25
25
|
|
|
26
26
|
if TYPE_CHECKING:
|
|
27
27
|
from arelle.ModelXbrl import ModelXbrl
|
|
@@ -55,9 +55,9 @@ def rule_nl_kvk_3_1_1_1(
|
|
|
55
55
|
NL-KVK.3.1.1.1: xbrli:identifier content to match KVK number format that must consist of 8 consecutive digits;
|
|
56
56
|
first two digits must not be '00'.
|
|
57
57
|
"""
|
|
58
|
-
entityIdentifierValues =
|
|
58
|
+
entityIdentifierValues = pluginData.entityIdentifiersInDocument(val.modelXbrl)
|
|
59
59
|
for entityId in entityIdentifierValues:
|
|
60
|
-
if not XBRLI_IDENTIFIER_PATTERN.match(entityId):
|
|
60
|
+
if not XBRLI_IDENTIFIER_PATTERN.match(entityId[1]):
|
|
61
61
|
yield Validation.error(
|
|
62
62
|
codes='NL.NL-KVK-3.1.1.1',
|
|
63
63
|
msg=_('xbrli:identifier content to match KVK number format that must consist of 8 consecutive digits.'
|
|
@@ -65,3 +65,30 @@ def rule_nl_kvk_3_1_1_1(
|
|
|
65
65
|
modelObject = val.modelXbrl
|
|
66
66
|
)
|
|
67
67
|
return
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
@validation(
|
|
71
|
+
hook=ValidationHook.XBRL_FINALLY,
|
|
72
|
+
disclosureSystems=[
|
|
73
|
+
DISCLOSURE_SYSTEM_INLINE_NT19
|
|
74
|
+
],
|
|
75
|
+
)
|
|
76
|
+
def rule_nl_kvk_3_1_1_2(
|
|
77
|
+
pluginData: PluginValidationDataExtension,
|
|
78
|
+
val: ValidateXbrl,
|
|
79
|
+
*args: Any,
|
|
80
|
+
**kwargs: Any,
|
|
81
|
+
) -> Iterable[Validation]:
|
|
82
|
+
"""
|
|
83
|
+
NL-KVK.3.1.1.2: Scheme attribute of xbrli:identifier must be http://www.kvk.nl/kvk-id.
|
|
84
|
+
"""
|
|
85
|
+
entityIdentifierValues = pluginData.entityIdentifiersInDocument(val.modelXbrl)
|
|
86
|
+
for entityId in entityIdentifierValues:
|
|
87
|
+
if XBRLI_IDENTIFIER_SCHEMA != entityId[0]:
|
|
88
|
+
yield Validation.error(
|
|
89
|
+
codes='NL.NL-KVK-3.1.1.2',
|
|
90
|
+
msg=_('The scheme attribute of the xbrli:identifier does not match the required content.'
|
|
91
|
+
'This should be "http://www.kvk.nl/kvk-id".'),
|
|
92
|
+
modelObject = val.modelXbrl
|
|
93
|
+
)
|
|
94
|
+
return
|
|
@@ -123,7 +123,7 @@ arelle/XmlValidateConst.py,sha256=U_wN0Q-nWKwf6dKJtcu_83FXPn9c6P8JjzGA5b0w7P0,33
|
|
|
123
123
|
arelle/XmlValidateParticles.py,sha256=Mn6vhFl0ZKC_vag1mBwn1rH_x2jmlusJYqOOuxFPO2k,9231
|
|
124
124
|
arelle/XmlValidateSchema.py,sha256=6frtZOc1Yrx_5yYF6V6oHbScnglWrVbWr6xW4EHtLQI,7428
|
|
125
125
|
arelle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
126
|
-
arelle/_version.py,sha256=
|
|
126
|
+
arelle/_version.py,sha256=SdRSRBpZWyw1-pU0gtmyEG3t5dEaL5vN61b5KLdUkP4,513
|
|
127
127
|
arelle/typing.py,sha256=Ct5lrNKRow_o9CraMEXNza8nFsJ_iGIKoUeGfPs2dxI,1084
|
|
128
128
|
arelle/api/Session.py,sha256=O8zpg7MJys9uxwwHf8OsSlZxpPdq7A3ONyY39Q4A3Kc,6218
|
|
129
129
|
arelle/archive/CustomLogger.py,sha256=v_JXOCQLDZcfaFWzxC9FRcEf9tQi4rCI4Sx7jCuAVQI,1231
|
|
@@ -314,7 +314,7 @@ arelle/plugin/formulaLoader.py,sha256=_pPZQPAZeNjGj85rvH7QRl4gEjYD7Yhxl1JhuV9wOo
|
|
|
314
314
|
arelle/plugin/formulaSaver.py,sha256=STlKyDA-pVUxZoEW57MSu74RdpyHVTxaHvOZyOt0cyg,31385
|
|
315
315
|
arelle/plugin/formulaXPathChecker.py,sha256=sEEeLHx17XSj8eOgFdzYLBp9ZFk2UUYLOEKtaF_pq34,18795
|
|
316
316
|
arelle/plugin/functionsMath.py,sha256=Z8N7ok3w1aOusCQA9QvqYwQ8W1j80bb-_4lVclBnNQM,9037
|
|
317
|
-
arelle/plugin/inlineXbrlDocumentSet.py,sha256=
|
|
317
|
+
arelle/plugin/inlineXbrlDocumentSet.py,sha256=hAIuRG6vugWEpqpWvx80ELfoKl1pinnNbpX8X4ERe-4,55226
|
|
318
318
|
arelle/plugin/loadFromExcel.py,sha256=galvvaj9jTKMMRUasCSh1SQnCCBzoN_HEpYWv0fmUdM,124407
|
|
319
319
|
arelle/plugin/loadFromOIM.py,sha256=dJHnX56bmuY40f6vRMsQ7pJmIWcB5N_3jmYWGGnZSdM,903
|
|
320
320
|
arelle/plugin/profileCmdLine.py,sha256=uLL0fGshpiwtzyLKAtW0WuXAvcRtZgxQG6swM0e4BHA,2370
|
|
@@ -378,7 +378,7 @@ arelle/plugin/validate/FERC/__init__.py,sha256=V4fXcFKBsjFFPs9_1NhvDjWpEQCoQM0tR
|
|
|
378
378
|
arelle/plugin/validate/FERC/config.xml,sha256=bn9b8eCqJA1J62rYq1Nz85wJrMGAahVmmnIUQZyerjo,1919
|
|
379
379
|
arelle/plugin/validate/FERC/resources/ferc-utr.xml,sha256=OCRj9IUpdXATCBXKbB71apYx9kxcNtZW-Hq4s-avsRY,2663
|
|
380
380
|
arelle/plugin/validate/NL/DisclosureSystems.py,sha256=VFMcO8GJ8kIqhOV5McyEejaGJOR5JrmeF8GdFuS9IZw,174
|
|
381
|
-
arelle/plugin/validate/NL/PluginValidationDataExtension.py,sha256=
|
|
381
|
+
arelle/plugin/validate/NL/PluginValidationDataExtension.py,sha256=HSC78vmyI_W7MMaLXgZbKGd9IdwtirbCK0Q1H8p9j9k,2922
|
|
382
382
|
arelle/plugin/validate/NL/ValidationPluginExtension.py,sha256=VuvveUzLJ-1oTB394MSD2c2JeoLyys8y2Z13COHEnPs,14909
|
|
383
383
|
arelle/plugin/validate/NL/__init__.py,sha256=9NkkfosHnAzJhBa84KDAsoyU7vd4_DO3GYKTSvKuOk8,2554
|
|
384
384
|
arelle/plugin/validate/NL/resources/config.xml,sha256=vu5pA-Iw6cgb5aep8LNLNPCkmG1QF6RTw3TCgEIest8,1102
|
|
@@ -387,7 +387,7 @@ arelle/plugin/validate/NL/rules/br_kvk.py,sha256=0SwKieWzTDm3YMsXPS6zTdgbk7_Z9Cz
|
|
|
387
387
|
arelle/plugin/validate/NL/rules/fg_nl.py,sha256=4Puq5wAjtK_iNd4wisH_R0Z_EKJ7MT2OCai5g4t1MPE,10714
|
|
388
388
|
arelle/plugin/validate/NL/rules/fr_kvk.py,sha256=-_BLeWGoZ_f56p5VO4X40S45Ny3Ej-WK6Srei1KVSxU,8170
|
|
389
389
|
arelle/plugin/validate/NL/rules/fr_nl.py,sha256=-M1WtXp06khhtkfOVPCa-b8UbC281gk4YfDhvtAVlnI,31424
|
|
390
|
-
arelle/plugin/validate/NL/rules/nl_kvk.py,sha256=
|
|
390
|
+
arelle/plugin/validate/NL/rules/nl_kvk.py,sha256=JUlnK9-ib0y7bGG6apJ8i60TMEdoe6y_hL33s22rYw4,3164
|
|
391
391
|
arelle/plugin/validate/ROS/DisclosureSystems.py,sha256=rJ81mwQDYTi6JecFZ_zhqjjz3VNQRgjHNSh0wcQWAQE,18
|
|
392
392
|
arelle/plugin/validate/ROS/PluginValidationDataExtension.py,sha256=IV7ILhNvgKwQXqbpSA6HRNt9kEnejCyMADI3wyyIgk0,4036
|
|
393
393
|
arelle/plugin/validate/ROS/ValidationPluginExtension.py,sha256=FBhEp8t396vGdvCbMEimfcxmGiGnhXMen-yVLWnkFaI,758
|
|
@@ -707,7 +707,7 @@ arelle/utils/validate/ValidationPlugin.py,sha256=_WeRPXZUTCcSN3FLbFwiAe_2pAUTxZZ
|
|
|
707
707
|
arelle/utils/validate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
708
708
|
arelle/webserver/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
709
709
|
arelle/webserver/bottle.py,sha256=P-JECd9MCTNcxCnKoDUvGcoi03ezYVOgoWgv2_uH-6M,362
|
|
710
|
-
arelle_release-2.37.
|
|
710
|
+
arelle_release-2.37.2.dist-info/licenses/LICENSE.md,sha256=rMbWwFLGzPgLoEjEu8LCmkpWDTqsvfOI-wzLSfeJsis,4107
|
|
711
711
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
712
712
|
tests/integration_tests/download_cache.py,sha256=jVMIVICsZjcVc9DCPPu3fCjF9_cWSS3tqSynhFs3oAM,4097
|
|
713
713
|
tests/integration_tests/integration_test_util.py,sha256=H7mncbv0T9ZeVyrtk9Hohe3k6jgcYykHkt-LGE-Q9aQ,10270
|
|
@@ -1555,8 +1555,8 @@ tests/unit_tests/arelle/oim/test_load.py,sha256=NxiUauQwJVfWAHbbpsMHGSU2d3Br8Pki
|
|
|
1555
1555
|
tests/unit_tests/arelle/plugin/test_plugin_imports.py,sha256=bdhIs9frAnFsdGU113yBk09_jis-z43dwUItMFYuSYM,1064
|
|
1556
1556
|
tests/unit_tests/arelle/plugin/validate/ESEF/ESEF_Current/test_validate_css_url.py,sha256=XHABmejQt7RlZ0udh7v42f2Xb2STGk_fSaIaJ9i2xo0,878
|
|
1557
1557
|
tests/unit_tests/arelle/utils/validate/test_decorator.py,sha256=ZS8FqIY1g-2FCbjF4UYm609dwViax6qBMRJSi0vfuhY,2482
|
|
1558
|
-
arelle_release-2.37.
|
|
1559
|
-
arelle_release-2.37.
|
|
1560
|
-
arelle_release-2.37.
|
|
1561
|
-
arelle_release-2.37.
|
|
1562
|
-
arelle_release-2.37.
|
|
1558
|
+
arelle_release-2.37.2.dist-info/METADATA,sha256=vFrUz96GRRajb-pPQ0UBmp-6ztyG33aH2FSrXJazXE4,9116
|
|
1559
|
+
arelle_release-2.37.2.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
|
1560
|
+
arelle_release-2.37.2.dist-info/entry_points.txt,sha256=Uj5niwfwVsx3vaQ3fYj8hrZ1xpfCJyTUA09tYKWbzpo,111
|
|
1561
|
+
arelle_release-2.37.2.dist-info/top_level.txt,sha256=ZYmYGmhW5Jvo3vJ4iXBZPUI29LvYhntom04w90esJvU,13
|
|
1562
|
+
arelle_release-2.37.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|