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 +2 -2
- arelle/plugin/validate/EDINET/Constants.py +4 -4
- arelle/plugin/validate/EDINET/rules/contexts.py +42 -0
- arelle/plugin/validate/EDINET/rules/edinet.py +126 -1
- arelle/plugin/validate/UK/__init__.py +11 -31
- {arelle_release-2.37.66.dist-info → arelle_release-2.37.67.dist-info}/METADATA +1 -1
- {arelle_release-2.37.66.dist-info → arelle_release-2.37.67.dist-info}/RECORD +11 -11
- {arelle_release-2.37.66.dist-info → arelle_release-2.37.67.dist-info}/WHEEL +0 -0
- {arelle_release-2.37.66.dist-info → arelle_release-2.37.67.dist-info}/entry_points.txt +0 -0
- {arelle_release-2.37.66.dist-info → arelle_release-2.37.67.dist-info}/licenses/LICENSE.md +0 -0
- {arelle_release-2.37.66.dist-info → arelle_release-2.37.67.dist-info}/top_level.txt +0 -0
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.
|
|
32
|
-
__version_tuple__ = version_tuple = (2, 37,
|
|
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
|
-
|
|
89
|
-
|
|
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}_{
|
|
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}\/{
|
|
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
|
-
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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 =
|
|
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)]
|
|
@@ -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=
|
|
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=
|
|
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=
|
|
337
|
-
arelle/plugin/validate/EDINET/rules/edinet.py,sha256=
|
|
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=
|
|
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.
|
|
692
|
-
arelle_release-2.37.
|
|
693
|
-
arelle_release-2.37.
|
|
694
|
-
arelle_release-2.37.
|
|
695
|
-
arelle_release-2.37.
|
|
696
|
-
arelle_release-2.37.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|