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 CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '2.37.43'
21
- __version_tuple__ = version_tuple = (2, 37, 43)
20
+ __version__ = version = '2.37.44'
21
+ __version_tuple__ = version_tuple = (2, 37, 44)
@@ -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
- jpcrpEsrFacts = val.modelXbrl.factsByQname.get(pluginData.jpcrpEsrFilingDateCoverPageQn, set())
43
- jpcrpFacts = val.modelXbrl.factsByQname.get(pluginData.jpcrpFilingDateCoverPageQn, set())
44
- jpspsFacts = val.modelXbrl.factsByQname.get(pluginData.jpspsFilingDateCoverPageQn, set())
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",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arelle-release
3
- Version: 2.37.43
3
+ Version: 2.37.44
4
4
  Summary: An open source XBRL platform.
5
5
  Author-email: "arelle.org" <support@arelle.org>
6
6
  License-Expression: Apache-2.0
@@ -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=_yeUbYff5hFRJ7TaTKvPkSogzmTAov8fO5hCxibhlH4,515
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=QG69rWdpIrpQzZQkRcDWk2i3rlBVohr4VtSdW-IS5_w,734
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=3bGTdUI0bddAAQq4Du1sKyQobJlfCc3ZVCRSA2lfAsk,8758
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=yl5kRFAsc9BKYw5TW05ghDOl2ubJROUnTIKfEQ-o1W0,9192
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=IV7ILhNvgKwQXqbpSA6HRNt9kEnejCyMADI3wyyIgk0,4036
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.43.dist-info/licenses/LICENSE.md,sha256=Q0tn6q0VUbr-NM8916513NCIG8MNzo24Ev-sxMUBRZc,3959
764
- arelle_release-2.37.43.dist-info/METADATA,sha256=j1T8fS8zCMEJTSh6kRSHFfV5XRPqmNEPKsbOGVj6qoY,9137
765
- arelle_release-2.37.43.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
766
- arelle_release-2.37.43.dist-info/entry_points.txt,sha256=Uj5niwfwVsx3vaQ3fYj8hrZ1xpfCJyTUA09tYKWbzpo,111
767
- arelle_release-2.37.43.dist-info/top_level.txt,sha256=fwU7SYawL4_r-sUMRg7r1nYVGjFMSDvRWx8VGAXEw7w,7
768
- arelle_release-2.37.43.dist-info/RECORD,,
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,,