arelle-release 2.37.43__py3-none-any.whl → 2.37.44__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/validate/EDINET/Constants.py +12 -0
- arelle/plugin/validate/EDINET/PluginValidationDataExtension.py +14 -0
- arelle/plugin/validate/EDINET/rules/edinet.py +25 -6
- arelle/plugin/validate/ROS/PluginValidationDataExtension.py +6 -0
- {arelle_release-2.37.43.dist-info → arelle_release-2.37.44.dist-info}/METADATA +1 -1
- {arelle_release-2.37.43.dist-info → arelle_release-2.37.44.dist-info}/RECORD +11 -11
- {arelle_release-2.37.43.dist-info → arelle_release-2.37.44.dist-info}/WHEEL +0 -0
- {arelle_release-2.37.43.dist-info → arelle_release-2.37.44.dist-info}/entry_points.txt +0 -0
- {arelle_release-2.37.43.dist-info → arelle_release-2.37.44.dist-info}/licenses/LICENSE.md +0 -0
- {arelle_release-2.37.43.dist-info → arelle_release-2.37.44.dist-info}/top_level.txt +0 -0
arelle/_version.py
CHANGED
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
"""
|
|
2
2
|
See COPYRIGHT.md for copyright information.
|
|
3
3
|
"""
|
|
4
|
+
from enum import Enum
|
|
5
|
+
|
|
4
6
|
from arelle.ModelValue import qname
|
|
5
7
|
|
|
8
|
+
class DeiFormType(Enum):
|
|
9
|
+
FORM_2_4 = '第二号の四様式'
|
|
10
|
+
FORM_2_7 = '第二号の七様式'
|
|
11
|
+
FORM_3 = '第三号様式'
|
|
12
|
+
|
|
13
|
+
CORPORATE_FORMS =frozenset([
|
|
14
|
+
DeiFormType.FORM_2_4,
|
|
15
|
+
DeiFormType.FORM_2_7,
|
|
16
|
+
DeiFormType.FORM_3,
|
|
17
|
+
])
|
|
6
18
|
qnEdinetManifestInsert = qname("{http://disclosure.edinet-fsa.go.jp/2013/manifest}insert")
|
|
7
19
|
qnEdinetManifestInstance = qname("{http://disclosure.edinet-fsa.go.jp/2013/manifest}instance")
|
|
8
20
|
qnEdinetManifestItem = qname("{http://disclosure.edinet-fsa.go.jp/2013/manifest}item")
|
|
@@ -23,6 +23,7 @@ from arelle.XmlValidate import VALID
|
|
|
23
23
|
from arelle.typing import TypeGetText
|
|
24
24
|
from arelle.utils.PluginData import PluginData
|
|
25
25
|
from .FormType import FormType
|
|
26
|
+
from .Constants import CORPORATE_FORMS
|
|
26
27
|
|
|
27
28
|
_: TypeGetText
|
|
28
29
|
|
|
@@ -44,6 +45,7 @@ class PluginValidationDataExtension(PluginData):
|
|
|
44
45
|
jpspsFilingDateCoverPageQn: QName
|
|
45
46
|
liabilitiesAndEquityIfrsQn: QName
|
|
46
47
|
nonConsolidatedMemberQn: QName
|
|
48
|
+
ratioOfFemaleDirectorsAndOtherOfficersQn: QName
|
|
47
49
|
|
|
48
50
|
contextIdPattern: regex.Pattern[str]
|
|
49
51
|
|
|
@@ -64,6 +66,7 @@ class PluginValidationDataExtension(PluginData):
|
|
|
64
66
|
self.jpspsFilingDateCoverPageQn = qname(jpspsNamespace, 'FilingDateCoverPage')
|
|
65
67
|
self.liabilitiesAndEquityIfrsQn = qname(jpigpNamespace, "LiabilitiesAndEquityIFRS")
|
|
66
68
|
self.nonConsolidatedMemberQn = qname(jppfsNamespace, "NonConsolidatedMember")
|
|
69
|
+
self.ratioOfFemaleDirectorsAndOtherOfficersQn = qname(jpcrpNamespace, "RatioOfFemaleDirectorsAndOtherOfficers")
|
|
67
70
|
|
|
68
71
|
self.contextIdPattern = regex.compile(r'(Prior[1-9]Year|CurrentYear|Prior[1-9]Interim|Interim)(Duration|Instant)')
|
|
69
72
|
|
|
@@ -71,6 +74,13 @@ class PluginValidationDataExtension(PluginData):
|
|
|
71
74
|
def __hash__(self) -> int:
|
|
72
75
|
return id(self)
|
|
73
76
|
|
|
77
|
+
@lru_cache(1)
|
|
78
|
+
def isCorporateForm(self, modelXbrl: ModelXbrl) -> bool:
|
|
79
|
+
documentTypes = self.getDocumentTypes(modelXbrl)
|
|
80
|
+
if any(documentType == form.value for form in CORPORATE_FORMS for documentType in documentTypes):
|
|
81
|
+
return True
|
|
82
|
+
return False
|
|
83
|
+
|
|
74
84
|
@lru_cache(1)
|
|
75
85
|
def shouldValidateUpload(self, val: ValidateXbrl) -> bool:
|
|
76
86
|
"""
|
|
@@ -194,6 +204,10 @@ class PluginValidationDataExtension(PluginData):
|
|
|
194
204
|
paths.update(path.parents)
|
|
195
205
|
return sorted(paths)
|
|
196
206
|
|
|
207
|
+
def hasValidNonNilFact(self, modelXbrl: ModelXbrl, qname: QName) -> bool:
|
|
208
|
+
requiredFacts = modelXbrl.factsByQname.get(qname, set())
|
|
209
|
+
return any(fact.xValid >= VALID and not fact.isNil for fact in requiredFacts)
|
|
210
|
+
|
|
197
211
|
@lru_cache(1)
|
|
198
212
|
def isUpload(self, modelXbrl: ModelXbrl) -> bool:
|
|
199
213
|
if not modelXbrl.fileSource.fs or \
|
|
@@ -11,7 +11,6 @@ from arelle import XbrlConst, ValidateDuplicateFacts
|
|
|
11
11
|
from arelle.LinkbaseType import LinkbaseType
|
|
12
12
|
from arelle.ValidateDuplicateFacts import DuplicateType
|
|
13
13
|
from arelle.ValidateXbrl import ValidateXbrl
|
|
14
|
-
from arelle.XmlValidateConst import VALID
|
|
15
14
|
from arelle.typing import TypeGetText
|
|
16
15
|
from arelle.utils.PluginHooks import ValidationHook
|
|
17
16
|
from arelle.utils.validate.Decorator import validation
|
|
@@ -39,11 +38,9 @@ def rule_EC1057E(
|
|
|
39
38
|
"""
|
|
40
39
|
dei = pluginData.getDocumentTypes(val.modelXbrl)
|
|
41
40
|
if len(dei) > 0:
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
requiredFacts = jpcrpFacts.union(jpspsFacts, jpcrpEsrFacts)
|
|
46
|
-
if not any(fact.xValid >= VALID and not fact.isNil for fact in requiredFacts):
|
|
41
|
+
if not (pluginData.hasValidNonNilFact(val.modelXbrl, pluginData.jpcrpEsrFilingDateCoverPageQn)
|
|
42
|
+
or pluginData.hasValidNonNilFact(val.modelXbrl, pluginData.jpcrpFilingDateCoverPageQn)
|
|
43
|
+
or pluginData.hasValidNonNilFact(val.modelXbrl, pluginData.jpspsFilingDateCoverPageQn)):
|
|
47
44
|
yield Validation.error(
|
|
48
45
|
codes='EDINET.EC1057E',
|
|
49
46
|
msg=_("The [Submission Date] on the cover page has not been filled in."),
|
|
@@ -224,3 +221,25 @@ def rule_EC8062W(
|
|
|
224
221
|
assetSum=f"{assetSum:,}",
|
|
225
222
|
modelObject=facts,
|
|
226
223
|
)
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
@validation(
|
|
227
|
+
hook=ValidationHook.XBRL_FINALLY,
|
|
228
|
+
disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
|
|
229
|
+
)
|
|
230
|
+
def rule_EC8075W(
|
|
231
|
+
pluginData: PluginValidationDataExtension,
|
|
232
|
+
val: ValidateXbrl,
|
|
233
|
+
*args: Any,
|
|
234
|
+
**kwargs: Any,
|
|
235
|
+
) -> Iterable[Validation]:
|
|
236
|
+
"""
|
|
237
|
+
EDINET.EC8075W: The percentage of female executives has not been tagged in detail. Ensure that there is
|
|
238
|
+
a nonnil value disclosed for jpcrp_cor:RatioOfFemaleDirectorsAndOtherOfficers.
|
|
239
|
+
"""
|
|
240
|
+
if pluginData.isCorporateForm(val.modelXbrl):
|
|
241
|
+
if not pluginData.hasValidNonNilFact(val.modelXbrl, pluginData.ratioOfFemaleDirectorsAndOtherOfficersQn):
|
|
242
|
+
yield Validation.warning(
|
|
243
|
+
codes='EDINET.EC8075W',
|
|
244
|
+
msg=_("The percentage of female executives has not been tagged in detail."),
|
|
245
|
+
)
|
|
@@ -13,12 +13,18 @@ TAXONOMY_REFERENCES = [
|
|
|
13
13
|
"https://xbrl.frc.org.uk/ireland/FRS-101/2019-01-01/ie-FRS-101-2019-01-01.xsd",
|
|
14
14
|
"https://xbrl.frc.org.uk/ireland/FRS-101/2022-01-01/ie-FRS-101-2022-01-01.xsd",
|
|
15
15
|
"https://xbrl.frc.org.uk/ireland/FRS-101/2023-01-01/ie-FRS-101-2023-01-01.xsd",
|
|
16
|
+
"https://xbrl.frc.org.uk/ireland/FRS-101/2025-01-01/ie-FRS-101-2025-01-01.xsd",
|
|
17
|
+
|
|
16
18
|
"https://xbrl.frc.org.uk/ireland/FRS-102/2019-01-01/ie-FRS-102-2019-01-01.xsd",
|
|
17
19
|
"https://xbrl.frc.org.uk/ireland/FRS-102/2022-01-01/ie-FRS-102-2022-01-01.xsd",
|
|
18
20
|
"https://xbrl.frc.org.uk/ireland/FRS-102/2023-01-01/ie-FRS-102-2023-01-01.xsd",
|
|
21
|
+
"https://xbrl.frc.org.uk/ireland/FRS-102/2025-01-01/ie-FRS-102-2025-01-01.xsd",
|
|
22
|
+
|
|
19
23
|
"https://xbrl.frc.org.uk/ireland/IFRS/2019-01-01/ie-IFRS-2019-01-01.xsd",
|
|
20
24
|
"https://xbrl.frc.org.uk/ireland/IFRS/2022-01-01/ie-IFRS-2022-01-01.xsd",
|
|
21
25
|
"https://xbrl.frc.org.uk/ireland/IFRS/2023-01-01/ie-IFRS-2023-01-01.xsd",
|
|
26
|
+
"https://xbrl.frc.org.uk/ireland/IFRS/2025-01-01/ie-IFRS-2025-01-01.xsd",
|
|
27
|
+
|
|
22
28
|
"https://raw.githubusercontent.com/revenue-ie/dpl/master/schemas/ct/combined/2017-09-01/IE-FRS-101-IE-DPL-2017-09-01.xsd",
|
|
23
29
|
"https://raw.githubusercontent.com/revenue-ie/dpl/master/schemas/ct/combined/2017-09-01/IE-FRS-102-IE-DPL-2017-09-01.xsd",
|
|
24
30
|
"https://raw.githubusercontent.com/revenue-ie/dpl/master/schemas/ct/combined/2017-09-01/IE-EU-IFRS-IE-DPL-2017-09-01.xsd",
|
|
@@ -124,7 +124,7 @@ arelle/XmlValidateConst.py,sha256=U_wN0Q-nWKwf6dKJtcu_83FXPn9c6P8JjzGA5b0w7P0,33
|
|
|
124
124
|
arelle/XmlValidateParticles.py,sha256=Mn6vhFl0ZKC_vag1mBwn1rH_x2jmlusJYqOOuxFPO2k,9231
|
|
125
125
|
arelle/XmlValidateSchema.py,sha256=6frtZOc1Yrx_5yYF6V6oHbScnglWrVbWr6xW4EHtLQI,7428
|
|
126
126
|
arelle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
127
|
-
arelle/_version.py,sha256=
|
|
127
|
+
arelle/_version.py,sha256=mKPFgUQyLBnC_IacXBGYCi1A9bK9yXHMOniKMbX2WAw,515
|
|
128
128
|
arelle/typing.py,sha256=PRe-Fxwr2SBqYYUVPCJ3E7ddDX0_oOISNdT5Q97EbRM,1246
|
|
129
129
|
arelle/api/Session.py,sha256=27HVuK3Bz1_21l4_RLn1IQg6v0MNsUEYrHajymyWwxI,7429
|
|
130
130
|
arelle/archive/CustomLogger.py,sha256=v_JXOCQLDZcfaFWzxC9FRcEf9tQi4rCI4Sx7jCuAVQI,1231
|
|
@@ -393,18 +393,18 @@ arelle/plugin/validate/DBA/rules/tm.py,sha256=ui9oKBqlAForwkQ9kk9KBiUogTJE5pv1Rb
|
|
|
393
393
|
arelle/plugin/validate/DBA/rules/tr.py,sha256=4TootFjl0HXsKZk1XNBCyj-vnjRs4lg35hfiz_b_4wU,14684
|
|
394
394
|
arelle/plugin/validate/EBA/__init__.py,sha256=x3zXNcdSDJ3kHfL7kMs0Ve0Vs9oWbzNFVf1TK4Avmy8,45924
|
|
395
395
|
arelle/plugin/validate/EBA/config.xml,sha256=37wMVUAObK-XEqakqD8zPNog20emYt4a_yfL1AKubF8,2022
|
|
396
|
-
arelle/plugin/validate/EDINET/Constants.py,sha256=
|
|
396
|
+
arelle/plugin/validate/EDINET/Constants.py,sha256=_mwJxiGw4uE3krc5DF8Lg9zWe6D1PsnGImekDpBdpH4,1000
|
|
397
397
|
arelle/plugin/validate/EDINET/DisclosureSystems.py,sha256=3rKG42Eg-17Xx_KXU_V5yHW6I3LTwQunvf4a44C9k_4,36
|
|
398
398
|
arelle/plugin/validate/EDINET/FormType.py,sha256=pJfKjdjqFcRLFgH6xbEixvpwatZBBHI8uI3xjjhaPI0,3175
|
|
399
399
|
arelle/plugin/validate/EDINET/Manifest.py,sha256=VWenzA1ndOp802zpTELSLREbCrzrA-nM1UCRpRf1Q3M,4849
|
|
400
|
-
arelle/plugin/validate/EDINET/PluginValidationDataExtension.py,sha256=
|
|
400
|
+
arelle/plugin/validate/EDINET/PluginValidationDataExtension.py,sha256=qh8JaR0268E_ULNm5CeLrSYUuurvXD6XcoQQNNkM81E,9487
|
|
401
401
|
arelle/plugin/validate/EDINET/ValidationPluginExtension.py,sha256=HIGOpBOyuVs5SEh573M3IzdouRdEuNIBkdumieZi8r0,959
|
|
402
402
|
arelle/plugin/validate/EDINET/__init__.py,sha256=K3vsgWeLw8BBj5MJ_CUzHgSZQ6jg26VzL2Adr-mTkhc,3583
|
|
403
403
|
arelle/plugin/validate/EDINET/resources/config.xml,sha256=7uT4GcRgk5veMLpFhPPQJxbGKiQvM52P8EMrjn0qd0g,646
|
|
404
404
|
arelle/plugin/validate/EDINET/resources/edinet-taxonomies.xml,sha256=997I3RGTLg5OY3vn5hQxVFAAxOmDSOYpuyQe6VnWSY0,16285
|
|
405
405
|
arelle/plugin/validate/EDINET/rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
406
406
|
arelle/plugin/validate/EDINET/rules/contexts.py,sha256=feNqSFhfOxPeV0jpSdmwULtY-__eimHtclVKtCyrLZg,7715
|
|
407
|
-
arelle/plugin/validate/EDINET/rules/edinet.py,sha256=
|
|
407
|
+
arelle/plugin/validate/EDINET/rules/edinet.py,sha256=7nCqPlpzj2hOU09h0SYjmWbvUgMJmjHTNPwGyJssWm0,9837
|
|
408
408
|
arelle/plugin/validate/EDINET/rules/frta.py,sha256=N0YglHYZuLD2IuwE26viR2ViwUYjneBuMFU9vlrS0aQ,7616
|
|
409
409
|
arelle/plugin/validate/EDINET/rules/gfm.py,sha256=4EKMho6eX-Ygl8yMBVabHQpbC-wxMvi067ubN9mp27U,21982
|
|
410
410
|
arelle/plugin/validate/EDINET/rules/upload.py,sha256=HZ-9Gk6WtIichTGcSsSGIrMXNgsgJYQYwfUKeLs1XWU,20369
|
|
@@ -436,7 +436,7 @@ arelle/plugin/validate/NL/rules/fr_kvk.py,sha256=kYqXt45S6eM32Yg9ii7pUhOMfJaHurg
|
|
|
436
436
|
arelle/plugin/validate/NL/rules/fr_nl.py,sha256=vwzk6_P6jhszpeboTM09uOHtm-Lijzz7Iqu7NsYKyaE,31444
|
|
437
437
|
arelle/plugin/validate/NL/rules/nl_kvk.py,sha256=bPD5lfr6dxdVGPZ2D_bEZtbz02tzsX_BZ5kC-CZJNwc,90170
|
|
438
438
|
arelle/plugin/validate/ROS/DisclosureSystems.py,sha256=rJ81mwQDYTi6JecFZ_zhqjjz3VNQRgjHNSh0wcQWAQE,18
|
|
439
|
-
arelle/plugin/validate/ROS/PluginValidationDataExtension.py,sha256=
|
|
439
|
+
arelle/plugin/validate/ROS/PluginValidationDataExtension.py,sha256=nCZoGWNX4aUN5oQBJqa8UrG9tElPW906xkfzRlbjBB8,4285
|
|
440
440
|
arelle/plugin/validate/ROS/ValidationPluginExtension.py,sha256=HrLoJWHMFjou3j7ro6Ajrcab1JOgi505ZFPEM5a3QOY,776
|
|
441
441
|
arelle/plugin/validate/ROS/__init__.py,sha256=KuWg1MHVzA2S6eaHFptvP3Vu_5gQWf3OUYC97clB7zI,2075
|
|
442
442
|
arelle/plugin/validate/ROS/config.xml,sha256=ZCpCFgr1ZAjoUuhb1eRpDnmKrae-sXA9yl6SOWnrfm8,654
|
|
@@ -760,9 +760,9 @@ arelle/utils/validate/ValidationUtil.py,sha256=9vmSvShn-EdQy56dfesyV8JjSRVPj7txr
|
|
|
760
760
|
arelle/utils/validate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
761
761
|
arelle/webserver/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
762
762
|
arelle/webserver/bottle.py,sha256=P-JECd9MCTNcxCnKoDUvGcoi03ezYVOgoWgv2_uH-6M,362
|
|
763
|
-
arelle_release-2.37.
|
|
764
|
-
arelle_release-2.37.
|
|
765
|
-
arelle_release-2.37.
|
|
766
|
-
arelle_release-2.37.
|
|
767
|
-
arelle_release-2.37.
|
|
768
|
-
arelle_release-2.37.
|
|
763
|
+
arelle_release-2.37.44.dist-info/licenses/LICENSE.md,sha256=Q0tn6q0VUbr-NM8916513NCIG8MNzo24Ev-sxMUBRZc,3959
|
|
764
|
+
arelle_release-2.37.44.dist-info/METADATA,sha256=-tNggDJbddiKoT1AxjIRIH7S1PVl1ETPhTLD-zjw2Fc,9137
|
|
765
|
+
arelle_release-2.37.44.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
766
|
+
arelle_release-2.37.44.dist-info/entry_points.txt,sha256=Uj5niwfwVsx3vaQ3fYj8hrZ1xpfCJyTUA09tYKWbzpo,111
|
|
767
|
+
arelle_release-2.37.44.dist-info/top_level.txt,sha256=fwU7SYawL4_r-sUMRg7r1nYVGjFMSDvRWx8VGAXEw7w,7
|
|
768
|
+
arelle_release-2.37.44.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|