arelle-release 2.37.66__py3-none-any.whl → 2.37.67__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
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '2.37.66'
32
- __version_tuple__ = version_tuple = (2, 37, 66)
31
+ __version__ = version = '2.37.67'
32
+ __version_tuple__ = version_tuple = (2, 37, 67)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -85,8 +85,8 @@ NUMERIC_LABEL_ROLES = frozenset({
85
85
  PATTERN_CODE = r'(?P<code>[A-Za-z\d]*)'
86
86
  PATTERN_CONSOLIDATED = r'(?P<consolidated>c|n)'
87
87
  PATTERN_COUNT = r'(?P<count>\d{2})'
88
- PATTERN_DATE1 = r'(?P<year1>\d{4})-(?P<month1>\d{2})-(?P<day1>\d{2})'
89
- PATTERN_DATE2 = r'(?P<year2>\d{4})-(?P<month2>\d{2})-(?P<day2>\d{2})'
88
+ PATTERN_PERIOD_DATE = r'(?P<period_year>\d{4})-(?P<period_month>\d{2})-(?P<period_day>\d{2})'
89
+ PATTERN_SUBMISSION_DATE = r'(?P<submission_year>\d{4})-(?P<submission_month>\d{2})-(?P<submission_day>\d{2})'
90
90
  PATTERN_FORM = r'(?P<form>\d{6})'
91
91
  PATTERN_LINKBASE = r'(?P<linkbase>lab|lab-en|gla|pre|def|cal)'
92
92
  PATTERN_MAIN = r'(?P<main>\d{7})'
@@ -99,12 +99,12 @@ PATTERN_SERIAL = r'(?P<serial>\d{3})'
99
99
 
100
100
  PATTERN_AUDIT_REPORT_PREFIX = rf'jpaud-{PATTERN_REPORT}-{PATTERN_PERIOD}{PATTERN_CONSOLIDATED}'
101
101
  PATTERN_REPORT_PREFIX = rf'jp{PATTERN_ORDINANCE}{PATTERN_FORM}-{PATTERN_REPORT}'
102
- PATTERN_SUFFIX = rf'{PATTERN_REPORT_SERIAL}_{PATTERN_CODE}-{PATTERN_SERIAL}_{PATTERN_DATE1}_{PATTERN_COUNT}_{PATTERN_DATE2}'
102
+ PATTERN_SUFFIX = rf'{PATTERN_REPORT_SERIAL}_{PATTERN_CODE}-{PATTERN_SERIAL}_{PATTERN_PERIOD_DATE}_{PATTERN_COUNT}_{PATTERN_SUBMISSION_DATE}'
103
103
 
104
104
  PATTERN_URI_HOST = r'http:\/\/disclosure\.edinet-fsa\.go\.jp'
105
105
  PATTERN_AUDIT_URI_PREFIX = rf'jpaud\/{PATTERN_REPORT}\/{PATTERN_PERIOD}{PATTERN_CONSOLIDATED}'
106
106
  PATTERN_REPORT_URI_PREFIX = rf'jp{PATTERN_ORDINANCE}{PATTERN_FORM}\/{PATTERN_REPORT}'
107
- PATTERN_URI_SUFFIX = rf'{PATTERN_REPORT_SERIAL}\/{PATTERN_CODE}-{PATTERN_SERIAL}\/{PATTERN_DATE1}\/{PATTERN_COUNT}\/{PATTERN_DATE2}'
107
+ PATTERN_URI_SUFFIX = rf'{PATTERN_REPORT_SERIAL}\/{PATTERN_CODE}-{PATTERN_SERIAL}\/{PATTERN_PERIOD_DATE}\/{PATTERN_COUNT}\/{PATTERN_SUBMISSION_DATE}'
108
108
 
109
109
  # Extension namespace URI for report
110
110
  # Example: http://disclosure.edinet-fsa.go.jp/jpcrp030000/asr/001/X99002-000/2025-03-31/01/2025-06-28
@@ -353,6 +353,48 @@ def rule_EC8021W(
353
353
  )
354
354
 
355
355
 
356
+ @validation(
357
+ hook=ValidationHook.COMPLETE,
358
+ disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
359
+ )
360
+ def rule_EC8032E(
361
+ pluginData: ControllerPluginData,
362
+ cntlr: Cntlr,
363
+ fileSource: FileSource,
364
+ *args: Any,
365
+ **kwargs: Any,
366
+ ) -> Iterable[Validation]:
367
+ """
368
+ EDINET.EC8032E: The first six digits of each context identifier must match the "EDINET code"
369
+ in the DEI information (or the "fund code" in the DEI information in the case of the Cabinet
370
+ Office Ordinance on Specified Securities Disclosure).
371
+ """
372
+ localNames = ('EDINETCodeDEI', 'FundCodeDEI')
373
+ codes = set()
374
+ for localName in localNames:
375
+ code = pluginData.getDeiValue(localName)
376
+ if code is None:
377
+ continue
378
+ codes.add(str(code)[:6])
379
+ if len(codes) == 0:
380
+ # If neither code is present in the DEI, it will be caught by other validation(s).
381
+ return
382
+ for modelXbrl in pluginData.loadedModelXbrls:
383
+ for context in modelXbrl.contexts.values():
384
+ __, identifier = context.entityIdentifier
385
+ identifier = identifier[:6]
386
+ if identifier not in codes:
387
+ yield Validation.error(
388
+ codes='EDINET.EC8032E',
389
+ msg=_("The context identifier must match the 'EDINETCodeDEI' information in the DEI. "
390
+ "Please set the identifier (first six digits) of the relevant context ID so "
391
+ "that it matches the EDINET code of the person submitting the disclosure "
392
+ "documents (or the fund code in the case of the Specified Securities Disclosure "
393
+ "Ordinance)."),
394
+ modelObject=context,
395
+ )
396
+
397
+
356
398
  @validation(
357
399
  hook=ValidationHook.XBRL_FINALLY,
358
400
  disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
@@ -4,12 +4,13 @@ See COPYRIGHT.md for copyright information.
4
4
  from __future__ import annotations
5
5
 
6
6
  from collections import defaultdict
7
+ from pathlib import Path
7
8
  from typing import Any, Iterable
8
9
 
9
10
  import regex
10
11
  from jaconv import jaconv
11
12
 
12
- from arelle import XbrlConst, ValidateDuplicateFacts
13
+ from arelle import XbrlConst, ValidateDuplicateFacts, XmlUtil
13
14
  from arelle.Cntlr import Cntlr
14
15
  from arelle.FileSource import FileSource
15
16
  from arelle.LinkbaseType import LinkbaseType
@@ -649,6 +650,130 @@ def rule_EC8029W(
649
650
  )
650
651
 
651
652
 
653
+ @validation(
654
+ hook=ValidationHook.XBRL_FINALLY,
655
+ disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
656
+ )
657
+ def rule_EC8030W(
658
+ pluginData: PluginValidationDataExtension,
659
+ val: ValidateXbrl,
660
+ *args: Any,
661
+ **kwargs: Any,
662
+ ) -> Iterable[Validation]:
663
+ """
664
+ EDINET.EC8030W: Any concept (other than DEI concepts) used in an instance must
665
+ be in the presentation linkbase.
666
+ """
667
+ usedConcepts = pluginData.getUsedConcepts(val.modelXbrl)
668
+ relSet = val.modelXbrl.relationshipSet(tuple(LinkbaseType.PRESENTATION.getArcroles()))
669
+ for concept in usedConcepts:
670
+ if concept.qname.namespaceURI == pluginData.jpdeiNamespace:
671
+ continue
672
+ if concept.qname.localName.endswith('DEI'):
673
+ # Example: jpsps_cor:SecuritiesRegistrationStatementAmendmentFlagDeemedRegistrationStatementDEI
674
+ continue
675
+ if not relSet.contains(concept):
676
+ yield Validation.warning(
677
+ codes='EDINET.EC8030W',
678
+ msg=_("An element (other than DEI) set in the inline XBRL file is not set in the "
679
+ "presentation linkbase. "
680
+ "Element: '%(concept)s'. "
681
+ "Please set the relevant element in the presentation linkbase."),
682
+ concept=concept.qname.localName,
683
+ modelObject=concept,
684
+ )
685
+
686
+
687
+ @validation(
688
+ hook=ValidationHook.COMPLETE,
689
+ disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
690
+ )
691
+ def rule_EC8031W(
692
+ pluginData: ControllerPluginData,
693
+ cntlr: Cntlr,
694
+ fileSource: FileSource,
695
+ *args: Any,
696
+ **kwargs: Any,
697
+ ) -> Iterable[Validation]:
698
+ """
699
+ EDINET.EC8031W: For contexts having an ID beginning with "FilingDate", the instant
700
+ date value must match the report submission date set in the file name.
701
+
702
+ However, when reporting corrections, please set the following:
703
+ Context beginning with "FilingDate": The submission date on the cover page of the attached inline XBRL (original submission date)
704
+ "Report submission date" in the file name: The submission date of the correction report, etc.
705
+ """
706
+ isAmendment = pluginData.getDeiValue('ReportAmendmentFlagDEI')
707
+ if isAmendment:
708
+ # Amendment/corrections report are not subject to this validation, but documentation does note:
709
+ # However, when reporting corrections, please set the following:
710
+ # Context beginning with "FilingDate": The submission date on the cover page of the attached inline XBRL (original submission date)
711
+ # "Report submission date" in the file name: The submission date of the correction report, etc.
712
+ return
713
+ uploadContents = pluginData.getUploadContents()
714
+ if uploadContents is None:
715
+ return
716
+ docUris = {
717
+ docUri
718
+ for modelXbrl in pluginData.loadedModelXbrls
719
+ for docUri in modelXbrl.urlDocs.keys()
720
+ }
721
+ actualDates = defaultdict(set)
722
+ for uri in docUris:
723
+ path = Path(uri)
724
+ pathInfo = uploadContents.uploadPathsByFullPath.get(path)
725
+ if pathInfo is None or pathInfo.reportFolderType is None:
726
+ continue
727
+ patterns = pathInfo.reportFolderType.ixbrlFilenamePatterns
728
+ for pattern in patterns:
729
+ matches = pattern.match(path.name)
730
+ if not matches:
731
+ continue
732
+ groups = matches.groupdict()
733
+ year = groups['submission_year']
734
+ month = groups['submission_month']
735
+ day = groups['submission_day']
736
+ actualDate = f'{year:04}-{month:02}-{day:02}'
737
+ actualDates[actualDate].add(path)
738
+ expectedDates = defaultdict(set)
739
+ for modelXbrl in pluginData.loadedModelXbrls:
740
+ for context in modelXbrl.contexts.values():
741
+ if context.id is None:
742
+ continue
743
+ if not context.id.startswith("FilingDate"):
744
+ continue
745
+ if not context.isInstantPeriod:
746
+ continue
747
+ expectedDate = XmlUtil.dateunionValue(context.instantDatetime, subtractOneDay=True)[:10]
748
+ expectedDates[expectedDate].add(context)
749
+ invalidDates = {k: v for k, v in actualDates.items() if k not in expectedDates}
750
+ if len(invalidDates) == 0:
751
+ return
752
+ paths = [
753
+ path
754
+ for paths in invalidDates.values()
755
+ for path in paths
756
+ ]
757
+ contexts = [
758
+ context
759
+ for contexts in expectedDates.values()
760
+ for context in contexts
761
+ ]
762
+ for path in paths:
763
+ for context in contexts:
764
+ yield Validation.warning(
765
+ codes='EDINET.EC8031W',
766
+ msg=_("The value of the instant element in context '%(context)s' "
767
+ "must match the report submission date set in the file name. "
768
+ "File name: '%(file)s'. "
769
+ "Please correct the report submission date in the filename or "
770
+ "the instant element value for the context with ID '%(context)s'."),
771
+ context=context.id,
772
+ file=path.name,
773
+ modelObject=context,
774
+ )
775
+
776
+
652
777
  @validation(
653
778
  hook=ValidationHook.XBRL_FINALLY,
654
779
  disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
@@ -38,12 +38,18 @@ IMG_URL_CSS_PROPERTIES = frozenset([
38
38
  EMPTYDICT = {}
39
39
  _6_APR_2008 = dateTime("2008-04-06", type=DATE)
40
40
 
41
- COMMON_GENERIC_DIMENSIONS = {
41
+ GENERIC_DIMENSION_VALIDATIONS = {
42
+ # "LocalName": (range of numbers if any, first item name, 2nd choice item name if any)
43
+ "SpecificDiscontinuedOperation": (1, 8, "DescriptionDiscontinuedOperationOrNon-currentAssetsOrDisposalGroupHeldForSale"),
44
+ "SpecificNon-currentAssetsDisposalGroupHeldForSale": (1, 8, "DescriptionDiscontinuedOperationOrNon-currentAssetsOrDisposalGroupHeldForSale"),
42
45
  "Chairman": ("NameEntityOfficer",),
43
46
  "ChiefExecutive": ("NameEntityOfficer",),
44
47
  "ChairmanChiefExecutive": ("NameEntityOfficer",),
45
48
  "SeniorPartnerLimitedLiabilityPartnership": ("NameEntityOfficer",),
46
- "HighestPaidDirector": ("NameEntityOfficer",),
49
+ "CorporateTrustee": (1, 3, "NameEntityOfficer"),
50
+ "DirectorOfCorporateTrustee": ("NameEntityOfficer",),
51
+ "CustodianTrustee": ("NameEntityOfficer",),
52
+ "Trustee": (1, 20, "NameEntityOfficer",),
47
53
  "CompanySecretary": (1, 2, "NameEntityOfficer",),
48
54
  "CompanySecretaryDirector": (1, 2, "NameEntityOfficer",),
49
55
  "Director": (1, 40, "NameEntityOfficer",),
@@ -60,7 +66,7 @@ COMMON_GENERIC_DIMENSIONS = {
60
66
  "UnconsolidatedStructuredEntity": (1, 5, "NameUnconsolidatedStructuredEntity"),
61
67
  "IntermediateParent": (1, 5, "NameOrDescriptionRelatedPartyIfNotDefinedByAnotherTag"),
62
68
  "EntityWithJointControlOrSignificantInfluence": (1, 5, "NameOrDescriptionRelatedPartyIfNotDefinedByAnotherTag"),
63
- "AnotherGroupMember": (1, 8, "NameOrDescriptionRelatedPartyIfNotDefinedByAnotherTag"),
69
+ "OtherGroupMember": (1, 8, "NameOrDescriptionRelatedPartyIfNotDefinedByAnotherTag"),
64
70
  "KeyManagementIndividualGroup": (1, 5, "NameOrDescriptionRelatedPartyIfNotDefinedByAnotherTag"),
65
71
  "CloseFamilyMember": (1, 5, "NameOrDescriptionRelatedPartyIfNotDefinedByAnotherTag"),
66
72
  "EntityControlledByKeyManagementPersonnel": (1, 5, "NameOrDescriptionRelatedPartyIfNotDefinedByAnotherTag"),
@@ -77,6 +83,7 @@ COMMON_GENERIC_DIMENSIONS = {
77
83
  "OtherPost-employmentBenefitPlan": (1, 2, "NameDefinedContributionPlan", "NameDefinedBenefitPlan"),
78
84
  "OtherContractType": (1, 2, "DescriptionOtherContractType"),
79
85
  "OtherDurationType": (1, 2, "DescriptionOtherContractDurationType"),
86
+ "OtherChannelType": (1, 2, "DescriptionOtherSalesChannelType"),
80
87
  "SalesChannel": (1, 2, "DescriptionOtherSalesChannelType"),
81
88
  }
82
89
 
@@ -115,33 +122,6 @@ MUST_HAVE_ONE_ITEM = {
115
122
  }
116
123
  }
117
124
 
118
- GENERIC_DIMENSION_VALIDATION = {
119
- # "taxonomyType": { "LocalName": (range of numbers if any, first item name, 2nd choice item name if any)
120
- "ukGAAP": COMMON_GENERIC_DIMENSIONS,
121
- "ukIFRS": COMMON_GENERIC_DIMENSIONS,
122
- "charities": {
123
- **COMMON_GENERIC_DIMENSIONS,
124
- **{
125
- "Trustee": (1, 20, "NameEntityOfficer"),
126
- "CorporateTrustee": (1, 3, "NameEntityOfficer"),
127
- "CustodianTrustee": (1, 3, "NameEntityOfficer"),
128
- "Director1CorporateTrustee": ("NameEntityOfficer",),
129
- "Director2CorporateTrustee": ("NameEntityOfficer",),
130
- "Director3CorporateTrustee": ("NameEntityOfficer",),
131
- "TrusteeTrustees": (1, 5, "NameOrDescriptionRelatedPartyIfNotDefinedByAnotherTag"),
132
- "CloseFamilyMemberTrusteeTrustees": (1, 5, "NameOrDescriptionRelatedPartyIfNotDefinedByAnotherTag"),
133
- "EntityControlledTrustees": (1, 5, "NameOrDescriptionRelatedPartyIfNotDefinedByAnotherTag"),
134
- "Activity": (1, 50, "DescriptionActivity"),
135
- "MaterialFund": (1, 50, "DescriptionsMaterialFund"),
136
- "LinkedCharity": (1, 5, "DescriptionActivitiesLinkedCharity"),
137
- "NameGrantRecipient": (1, 50, "NameSpecificInstitutionalGrantRecipient"),
138
- "ConcessionaryLoan": (1, 50, "DescriptionConcessionaryLoan"),
139
- }
140
- },
141
- "FRS": COMMON_GENERIC_DIMENSIONS,
142
- "FRS-2022": COMMON_GENERIC_DIMENSIONS
143
- }
144
-
145
125
  ALLOWED_IMG_MIME_TYPES = (
146
126
  "data:image/gif;base64",
147
127
  "data:image/jpeg;base64", "data:image/jpg;base64", # note both jpg and jpeg are in use
@@ -243,7 +223,7 @@ def validateXbrlFinally(val, *args, **kwargs):
243
223
  else:
244
224
  l = _memName
245
225
  n = None
246
- gdv = GENERIC_DIMENSION_VALIDATION.get(val.txmyType, EMPTYDICT).get(l)
226
+ gdv = GENERIC_DIMENSION_VALIDATIONS.get(l)
247
227
  if (gdv and (n is None or
248
228
  (isinstance(gdv[0],int) and isinstance(gdv[1],int) and n >= gdv[0] and n <= gdv[1]))):
249
229
  gdvFacts = [f for f in gdv if isinstance(f,str)]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arelle-release
3
- Version: 2.37.66
3
+ Version: 2.37.67
4
4
  Summary: An open source XBRL platform.
5
5
  Author-email: "arelle.org" <support@arelle.org>
6
6
  License-Expression: Apache-2.0
@@ -125,7 +125,7 @@ arelle/XmlValidateConst.py,sha256=U_wN0Q-nWKwf6dKJtcu_83FXPn9c6P8JjzGA5b0w7P0,33
125
125
  arelle/XmlValidateParticles.py,sha256=Mn6vhFl0ZKC_vag1mBwn1rH_x2jmlusJYqOOuxFPO2k,9231
126
126
  arelle/XmlValidateSchema.py,sha256=6frtZOc1Yrx_5yYF6V6oHbScnglWrVbWr6xW4EHtLQI,7428
127
127
  arelle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
- arelle/_version.py,sha256=7mP6Dryl-C9zKK-ALa3HCZHkwF-7BbhH__zd8ouxGn0,708
128
+ arelle/_version.py,sha256=zzJ0GRozS31txK-i2TlCJPBugIJyFCd7r0-f3yOLXY0,708
129
129
  arelle/typing.py,sha256=PRe-Fxwr2SBqYYUVPCJ3E7ddDX0_oOISNdT5Q97EbRM,1246
130
130
  arelle/api/Session.py,sha256=a71ML4FOkWxeqxQBRu6WUqkUoI4C5R6znzAQcbGR5jg,7902
131
131
  arelle/config/creationSoftwareNames.json,sha256=5MK7XUjfDJ9OpRCCHXeOErJ1SlTBZji4WEcEOdOacx0,3128
@@ -312,7 +312,7 @@ arelle/plugin/validate/DBA/rules/tm.py,sha256=ui9oKBqlAForwkQ9kk9KBiUogTJE5pv1Rb
312
312
  arelle/plugin/validate/DBA/rules/tr.py,sha256=4TootFjl0HXsKZk1XNBCyj-vnjRs4lg35hfiz_b_4wU,14684
313
313
  arelle/plugin/validate/EBA/__init__.py,sha256=x3zXNcdSDJ3kHfL7kMs0Ve0Vs9oWbzNFVf1TK4Avmy8,45924
314
314
  arelle/plugin/validate/EBA/config.xml,sha256=37wMVUAObK-XEqakqD8zPNog20emYt4a_yfL1AKubF8,2022
315
- arelle/plugin/validate/EDINET/Constants.py,sha256=6POa7ftTNQAV1td5WYGbzPGSXpWfAE9bfbXNFnTqfOI,8146
315
+ arelle/plugin/validate/EDINET/Constants.py,sha256=Rdwait6p9IYxTQLhfNcyg9WhbW-_Kpg7EX2223_ty3g,8242
316
316
  arelle/plugin/validate/EDINET/ContextRequirement.py,sha256=BejN3uz6TCSzR1qfQm-PZMbkhJlgUH9NVrY2Ux-Ph78,5217
317
317
  arelle/plugin/validate/EDINET/ControllerPluginData.py,sha256=8FVFpqh25NaxRKWn5qlK23qD6XDUOvNXRW35O6X9hTk,11599
318
318
  arelle/plugin/validate/EDINET/CoverItemRequirements.py,sha256=1YdzlSgc5MlUGyw81Ipv37CLxsdpSw8CO90snjgqLzw,1852
@@ -333,8 +333,8 @@ arelle/plugin/validate/EDINET/resources/cover-item-requirements.json,sha256=K5j2
333
333
  arelle/plugin/validate/EDINET/resources/dei-requirements.csv,sha256=8ILKNn8bXbcgG9V0lc8mxorKDKEjJQWLdBQRMvbqtkI,6518
334
334
  arelle/plugin/validate/EDINET/resources/edinet-taxonomies.xml,sha256=YXaPu-60CI2s0S-vXcLDEXCrrukEAAHyCEk0QRhrYR8,16772
335
335
  arelle/plugin/validate/EDINET/rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
336
- arelle/plugin/validate/EDINET/rules/contexts.py,sha256=fSYIZOWg3Q3cDos17hNAvw1HUVdcZx7IlUFfBJnwjHo,19604
337
- arelle/plugin/validate/EDINET/rules/edinet.py,sha256=mGqPXCJgy1SXb5Qhn3OpZZKbU7Rq3OeW-pDODFPvR4s,29714
336
+ arelle/plugin/validate/EDINET/rules/contexts.py,sha256=wEwIBPjEgWJHJrALxOV6qB1Lj_tws9ZnBT_twewn2js,21357
337
+ arelle/plugin/validate/EDINET/rules/edinet.py,sha256=Q6oId50ze-mZfmusNw18nWLXVAXdPsGuwybDKvS5YZc,34856
338
338
  arelle/plugin/validate/EDINET/rules/frta.py,sha256=wpX5zK0IfVVYZR9ELy2g_Z_F1Jzhwd9gh_KZC5ALkLg,12756
339
339
  arelle/plugin/validate/EDINET/rules/gfm.py,sha256=l5XHOBqyorub0LaQ7lA6oISy4oSynNFz4ilW9-Br89A,92060
340
340
  arelle/plugin/validate/EDINET/rules/manifests.py,sha256=MoT9R_a4BzuYdQVbF7RC5wz134Ve68svSdJ3NlpO_AU,4026
@@ -375,7 +375,7 @@ arelle/plugin/validate/ROS/resources/config.xml,sha256=HXWume5HlrAqOx5AtiWWqgADb
375
375
  arelle/plugin/validate/ROS/rules/__init__.py,sha256=wW7BUAIb7sRkOxC1Amc_ZKrz03FM-Qh1TyZe6wxYaAU,1567
376
376
  arelle/plugin/validate/ROS/rules/ros.py,sha256=CRZkZfsKe4y1B-PDkazQ_cD5LRZBk1GJjTscCZXXYUI,21173
377
377
  arelle/plugin/validate/UK/ValidateUK.py,sha256=UwNR3mhFzWNn6RKLSiC7j3LlMlConOx-9gWGovKamHA,61035
378
- arelle/plugin/validate/UK/__init__.py,sha256=GT67T_7qpOASzdmgRXFPmLxfPg3Gjubli7luQDK3zck,27462
378
+ arelle/plugin/validate/UK/__init__.py,sha256=tKAcsYzwopWbhY863sZE7kmOEaQbAGSABcAouhzTPcc,26589
379
379
  arelle/plugin/validate/UK/config.xml,sha256=mUFhWDfBzGTn7v0ZSmf4HaweQTMJh_4ZcJmD9mzCHrA,1547
380
380
  arelle/plugin/validate/UK/consistencyChecksByName.json,sha256=BgB9YAWzmcsX-_rU74RBkABwEsS75vrMlwBHsYCz2R0,25247
381
381
  arelle/plugin/validate/UK/hmrc-taxonomies.xml,sha256=3lR-wb2sooAddQkVqqRzG_VqLuHq_MQ8kIaXAQs1KVk,9623
@@ -688,9 +688,9 @@ arelle/utils/validate/ValidationUtil.py,sha256=hghMQoNuC3ocs6kkNtIQPhh8QwzubwHGt
688
688
  arelle/utils/validate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
689
689
  arelle/webserver/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
690
690
  arelle/webserver/bottle.py,sha256=P-JECd9MCTNcxCnKoDUvGcoi03ezYVOgoWgv2_uH-6M,362
691
- arelle_release-2.37.66.dist-info/licenses/LICENSE.md,sha256=Q0tn6q0VUbr-NM8916513NCIG8MNzo24Ev-sxMUBRZc,3959
692
- arelle_release-2.37.66.dist-info/METADATA,sha256=_ztovOi_5js6O0w_nldk5c99k8B_ZpFp2TDTj4jKits,9355
693
- arelle_release-2.37.66.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
694
- arelle_release-2.37.66.dist-info/entry_points.txt,sha256=Uj5niwfwVsx3vaQ3fYj8hrZ1xpfCJyTUA09tYKWbzpo,111
695
- arelle_release-2.37.66.dist-info/top_level.txt,sha256=fwU7SYawL4_r-sUMRg7r1nYVGjFMSDvRWx8VGAXEw7w,7
696
- arelle_release-2.37.66.dist-info/RECORD,,
691
+ arelle_release-2.37.67.dist-info/licenses/LICENSE.md,sha256=Q0tn6q0VUbr-NM8916513NCIG8MNzo24Ev-sxMUBRZc,3959
692
+ arelle_release-2.37.67.dist-info/METADATA,sha256=Ms39kpKr3yTMuK0cNyStyDodJhuc23ItmeSdHBLcQ40,9355
693
+ arelle_release-2.37.67.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
694
+ arelle_release-2.37.67.dist-info/entry_points.txt,sha256=Uj5niwfwVsx3vaQ3fYj8hrZ1xpfCJyTUA09tYKWbzpo,111
695
+ arelle_release-2.37.67.dist-info/top_level.txt,sha256=fwU7SYawL4_r-sUMRg7r1nYVGjFMSDvRWx8VGAXEw7w,7
696
+ arelle_release-2.37.67.dist-info/RECORD,,