arelle-release 2.37.51__py3-none-any.whl → 2.37.52__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/XbrlConst.py +1 -0
- arelle/_version.py +2 -2
- arelle/plugin/validate/EDINET/PluginValidationDataExtension.py +1 -1
- arelle/plugin/validate/EDINET/rules/gfm.py +28 -2
- arelle/plugin/validate/EDINET/rules/upload.py +114 -0
- arelle/plugin/validate/UK/__init__.py +8 -58
- {arelle_release-2.37.51.dist-info → arelle_release-2.37.52.dist-info}/METADATA +1 -1
- {arelle_release-2.37.51.dist-info → arelle_release-2.37.52.dist-info}/RECORD +12 -12
- {arelle_release-2.37.51.dist-info → arelle_release-2.37.52.dist-info}/WHEEL +0 -0
- {arelle_release-2.37.51.dist-info → arelle_release-2.37.52.dist-info}/entry_points.txt +0 -0
- {arelle_release-2.37.51.dist-info → arelle_release-2.37.52.dist-info}/licenses/LICENSE.md +0 -0
- {arelle_release-2.37.51.dist-info → arelle_release-2.37.52.dist-info}/top_level.txt +0 -0
arelle/XbrlConst.py
CHANGED
|
@@ -22,6 +22,7 @@ _tuple = tuple # type: ignore[type-arg]
|
|
|
22
22
|
xsd = "http://www.w3.org/2001/XMLSchema"
|
|
23
23
|
qnXsdComplexType = qname("{http://www.w3.org/2001/XMLSchema}xsd:complexType")
|
|
24
24
|
qnXsdDocumentation = qname("{http://www.w3.org/2001/XMLSchema}xsd:documentation")
|
|
25
|
+
qnXsdInclude = qname("{http://www.w3.org/2001/XMLSchema}xsd:include")
|
|
25
26
|
qnXsdImport = qname("{http://www.w3.org/2001/XMLSchema}xsd:import")
|
|
26
27
|
qnXsdSchema = qname("{http://www.w3.org/2001/XMLSchema}xsd:schema")
|
|
27
28
|
qnXsdAppinfo = qname("{http://www.w3.org/2001/XMLSchema}xsd:appinfo")
|
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.52'
|
|
32
|
+
__version_tuple__ = version_tuple = (2, 37, 52)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -260,7 +260,7 @@ class PluginValidationDataExtension(PluginData):
|
|
|
260
260
|
return controllerPluginData.matchManifestInstance(modelXbrl.ixdsDocUrls)
|
|
261
261
|
|
|
262
262
|
def hasValidNonNilFact(self, modelXbrl: ModelXbrl, qname: QName) -> bool:
|
|
263
|
-
return any(
|
|
263
|
+
return any(True for fact in self.iterValidNonNilFacts(modelXbrl, qname))
|
|
264
264
|
|
|
265
265
|
def isStandardTaxonomyUrl(self, uri: str, modelXbrl: ModelXbrl) -> bool:
|
|
266
266
|
return modelXbrl.modelManager.disclosureSystem.hrefValidForDisclosureSystem(uri)
|
|
@@ -3,10 +3,8 @@ See COPYRIGHT.md for copyright information.
|
|
|
3
3
|
"""
|
|
4
4
|
from __future__ import annotations
|
|
5
5
|
|
|
6
|
-
import os
|
|
7
6
|
from collections import defaultdict
|
|
8
7
|
from datetime import timedelta
|
|
9
|
-
from lxml.etree import XML, DTD
|
|
10
8
|
from typing import Any, cast, Iterable
|
|
11
9
|
|
|
12
10
|
import regex
|
|
@@ -615,3 +613,31 @@ def rule_gfm_1_2_30(
|
|
|
615
613
|
msg=_("A context must not contain the xbrli:forever element."),
|
|
616
614
|
modelObject=errors
|
|
617
615
|
)
|
|
616
|
+
|
|
617
|
+
|
|
618
|
+
@validation(
|
|
619
|
+
hook=ValidationHook.XBRL_FINALLY,
|
|
620
|
+
disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
|
|
621
|
+
)
|
|
622
|
+
def rule_gfm_1_3_1(
|
|
623
|
+
pluginData: PluginValidationDataExtension,
|
|
624
|
+
val: ValidateXbrl,
|
|
625
|
+
*args: Any,
|
|
626
|
+
**kwargs: Any,
|
|
627
|
+
) -> Iterable[Validation]:
|
|
628
|
+
"""
|
|
629
|
+
EDINET.EC5700W: [GFM 1.3.1] The submitter-specific taxonomy contains include elements.
|
|
630
|
+
"""
|
|
631
|
+
warnings = []
|
|
632
|
+
for modelDocument in val.modelXbrl.urlDocs.values():
|
|
633
|
+
if pluginData.isStandardTaxonomyUrl(modelDocument.uri, val.modelXbrl):
|
|
634
|
+
continue
|
|
635
|
+
rootElt = modelDocument.xmlRootElement
|
|
636
|
+
for elt in rootElt.iterdescendants(XbrlConst.qnXsdInclude.clarkNotation):
|
|
637
|
+
warnings.append(elt)
|
|
638
|
+
if len(warnings) > 0:
|
|
639
|
+
yield Validation.warning(
|
|
640
|
+
codes='EDINET.EC5700W.GFM.1.3.1',
|
|
641
|
+
msg=_("The submitter-specific taxonomy contains include elements."),
|
|
642
|
+
modelObject=warnings
|
|
643
|
+
)
|
|
@@ -8,6 +8,8 @@ from collections import defaultdict
|
|
|
8
8
|
from pathlib import Path
|
|
9
9
|
from typing import Any, Iterable, TYPE_CHECKING
|
|
10
10
|
|
|
11
|
+
import regex
|
|
12
|
+
|
|
11
13
|
from arelle.Cntlr import Cntlr
|
|
12
14
|
from arelle.FileSource import FileSource
|
|
13
15
|
from arelle.ValidateXbrl import ValidateXbrl
|
|
@@ -15,6 +17,7 @@ from arelle.typing import TypeGetText
|
|
|
15
17
|
from arelle.utils.PluginHooks import ValidationHook
|
|
16
18
|
from arelle.utils.validate.Decorator import validation
|
|
17
19
|
from arelle.utils.validate.Validation import Validation
|
|
20
|
+
from .. import Constants
|
|
18
21
|
from ..DisclosureSystems import (DISCLOSURE_SYSTEM_EDINET)
|
|
19
22
|
from ..ReportFolderType import ReportFolderType, HTML_EXTENSIONS, IMAGE_EXTENSIONS
|
|
20
23
|
from ..PluginValidationDataExtension import PluginValidationDataExtension
|
|
@@ -48,6 +51,48 @@ FILE_COUNT_LIMITS = {
|
|
|
48
51
|
|
|
49
52
|
FILENAME_STEM_PATTERN = re.compile(r'[a-zA-Z0-9_-]*')
|
|
50
53
|
|
|
54
|
+
PATTERN_CODE = r'(?P<code>[A-Za-z\d]*)'
|
|
55
|
+
PATTERN_CONSOLIDATED = r'(?P<consolidated>c|n)'
|
|
56
|
+
PATTERN_COUNT = r'(?P<count>\d{2})'
|
|
57
|
+
PATTERN_DATE1 = r'(?P<year1>\d{4})-(?P<month1>\d{2})-(?P<day1>\d{2})'
|
|
58
|
+
PATTERN_DATE2 = r'(?P<year2>\d{4})-(?P<month2>\d{2})-(?P<day2>\d{2})'
|
|
59
|
+
PATTERN_FORM = r'(?P<form>\d{6})'
|
|
60
|
+
PATTERN_LINKBASE = r'(?P<linkbase>lab|lab-en|gla|pre|def|cal)'
|
|
61
|
+
PATTERN_MAIN = r'(?P<main>\d{7})'
|
|
62
|
+
PATTERN_NAME = r'(?P<name>[a-z]{6})'
|
|
63
|
+
PATTERN_ORDINANCE = r'(?P<ordinance>[a-z]*)'
|
|
64
|
+
PATTERN_PERIOD = r'(?P<period>c|p)' # TODO: Have only seen "c" in sample/public filings, assuming "p" for previous.
|
|
65
|
+
PATTERN_REPORT = r'(?P<report>[a-z]*)'
|
|
66
|
+
PATTERN_REPORT_SERIAL = r'(?P<report_serial>\d{3})'
|
|
67
|
+
PATTERN_SERIAL = r'(?P<serial>\d{3})'
|
|
68
|
+
|
|
69
|
+
PATTERN_AUDIT_REPORT_PREFIX = rf'jpaud-{PATTERN_REPORT}-{PATTERN_PERIOD}{PATTERN_CONSOLIDATED}'
|
|
70
|
+
PATTERN_REPORT_PREFIX = rf'jp{PATTERN_ORDINANCE}{PATTERN_FORM}-{PATTERN_REPORT}'
|
|
71
|
+
PATTERN_SUFFIX = rf'{PATTERN_REPORT_SERIAL}_{PATTERN_CODE}-{PATTERN_SERIAL}_{PATTERN_DATE1}_{PATTERN_COUNT}_{PATTERN_DATE2}'
|
|
72
|
+
|
|
73
|
+
PATTERNS = list(regex.compile(p) for p in (
|
|
74
|
+
# Schema file for report
|
|
75
|
+
# Example: jpcrp050300-esr-001_X99007-000_2025-04-10_01_2025-04-10.xsd
|
|
76
|
+
rf'{PATTERN_REPORT_PREFIX}-{PATTERN_SUFFIX}.xsd',
|
|
77
|
+
# Schema file for audit report
|
|
78
|
+
# Example: jpaud-aar-cn-001_X99001-000_2025-03-31_01_2025-06-28.xsd
|
|
79
|
+
rf'{PATTERN_AUDIT_REPORT_PREFIX}-{PATTERN_SUFFIX}.xsd',
|
|
80
|
+
# Linkbase file for report
|
|
81
|
+
# Example: jpcrp020000-srs-001_X99001-000_2025-03-31_01_2025-11-20_cal.xml
|
|
82
|
+
rf'{PATTERN_REPORT_PREFIX}-{PATTERN_SUFFIX}_{PATTERN_LINKBASE}.xml',
|
|
83
|
+
# Linkbase file for audit report
|
|
84
|
+
# Example: jpaud-qrr-cc-001_X99001-000_2025-03-31_01_2025-11-20_pre.xml
|
|
85
|
+
rf'{PATTERN_AUDIT_REPORT_PREFIX}-{PATTERN_SUFFIX}_{PATTERN_LINKBASE}.xml',
|
|
86
|
+
# Cover page file for report
|
|
87
|
+
# Example: 0000000_header_jpcrp020000-srs-001_X99001-000_2025-03-31_01_2025-11-20_ixbrl.htm
|
|
88
|
+
rf'{Constants.COVER_PAGE_FILENAME_PREFIX}{PATTERN_REPORT_PREFIX}-{PATTERN_SUFFIX}_ixbrl.htm',
|
|
89
|
+
# Main file for report
|
|
90
|
+
# Example: 0205020_honbun_jpcrp020000-srs-001_X99001-000_2025-03-31_01_2025-11-20_ixbrl.htm
|
|
91
|
+
rf'{PATTERN_MAIN}_{PATTERN_NAME}_{PATTERN_REPORT_PREFIX}-{PATTERN_SUFFIX}_ixbrl.htm',
|
|
92
|
+
# Main file for audit report
|
|
93
|
+
# Example: jpaud-qrr-cc-001_X99001-000_2025-03-31_01_2025-11-20_pre.xml
|
|
94
|
+
rf'{PATTERN_AUDIT_REPORT_PREFIX}-{PATTERN_SUFFIX}_ixbrl.htm',
|
|
95
|
+
))
|
|
51
96
|
|
|
52
97
|
@validation(
|
|
53
98
|
hook=ValidationHook.FILESOURCE,
|
|
@@ -488,6 +533,75 @@ def rule_EC0206E(
|
|
|
488
533
|
)
|
|
489
534
|
|
|
490
535
|
|
|
536
|
+
@validation(
|
|
537
|
+
hook=ValidationHook.FILESOURCE,
|
|
538
|
+
disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
|
|
539
|
+
)
|
|
540
|
+
def rule_EC0349E(
|
|
541
|
+
pluginData: ControllerPluginData,
|
|
542
|
+
cntlr: Cntlr,
|
|
543
|
+
fileSource: FileSource,
|
|
544
|
+
*args: Any,
|
|
545
|
+
**kwargs: Any,
|
|
546
|
+
) -> Iterable[Validation]:
|
|
547
|
+
"""
|
|
548
|
+
EDINET.EC0349E: An unexpected directory or file exists in the XBRL directory.
|
|
549
|
+
Only PublicDoc, PrivateDoc, or AuditDoc directories may exist beneath the XBRL directory.
|
|
550
|
+
"""
|
|
551
|
+
uploadContent = pluginData.getUploadContents(fileSource)
|
|
552
|
+
xbrlDirectoryPath = Path('XBRL')
|
|
553
|
+
allowedPaths = {p.xbrlDirectory for p in (
|
|
554
|
+
ReportFolderType.AUDIT_DOC,
|
|
555
|
+
ReportFolderType.PRIVATE_DOC,
|
|
556
|
+
ReportFolderType.PUBLIC_DOC,
|
|
557
|
+
)}
|
|
558
|
+
for path, pathInfo in uploadContent.uploadPaths.items():
|
|
559
|
+
if path.parent != xbrlDirectoryPath:
|
|
560
|
+
continue
|
|
561
|
+
if path not in allowedPaths:
|
|
562
|
+
if not any(pattern.fullmatch(path.name) for pattern in PATTERNS):
|
|
563
|
+
yield Validation.error(
|
|
564
|
+
codes='EDINET.EC0349E',
|
|
565
|
+
msg=_("An unexpected directory or file exists in the XBRL directory. "
|
|
566
|
+
"Directory or file name: '%(file)s'."),
|
|
567
|
+
file=path.name,
|
|
568
|
+
)
|
|
569
|
+
|
|
570
|
+
|
|
571
|
+
@validation(
|
|
572
|
+
hook=ValidationHook.FILESOURCE,
|
|
573
|
+
disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
|
|
574
|
+
)
|
|
575
|
+
def rule_EC0352E(
|
|
576
|
+
pluginData: ControllerPluginData,
|
|
577
|
+
cntlr: Cntlr,
|
|
578
|
+
fileSource: FileSource,
|
|
579
|
+
*args: Any,
|
|
580
|
+
**kwargs: Any,
|
|
581
|
+
) -> Iterable[Validation]:
|
|
582
|
+
"""
|
|
583
|
+
EDINET.EC0352E: An XBRL file with an invalid name exists.
|
|
584
|
+
"""
|
|
585
|
+
uploadContent = pluginData.getUploadContents(fileSource)
|
|
586
|
+
for path, pathInfo in uploadContent.uploadPaths.items():
|
|
587
|
+
if (
|
|
588
|
+
pathInfo.isDirectory or
|
|
589
|
+
pathInfo.isCorrection or
|
|
590
|
+
pathInfo.isSubdirectory or
|
|
591
|
+
pathInfo.isAttachment or
|
|
592
|
+
pathInfo.reportFolderType is None or
|
|
593
|
+
any(path == t.manifestPath for t in ReportFolderType)
|
|
594
|
+
):
|
|
595
|
+
continue
|
|
596
|
+
if not any(pattern.fullmatch(path.name) for pattern in PATTERNS):
|
|
597
|
+
yield Validation.error(
|
|
598
|
+
codes='EDINET.EC0352E',
|
|
599
|
+
msg=_("A file with an invalid name exists. "
|
|
600
|
+
"File path: '%(path)s'."),
|
|
601
|
+
path=str(path),
|
|
602
|
+
)
|
|
603
|
+
|
|
604
|
+
|
|
491
605
|
@validation(
|
|
492
606
|
hook=ValidationHook.FILESOURCE,
|
|
493
607
|
disclosureSystems=[DISCLOSURE_SYSTEM_EDINET],
|
|
@@ -8,10 +8,10 @@ References:
|
|
|
8
8
|
- [HMRC CT Inline XBRL Style Guide](https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/434588/xbrl-style-guide.pdf)
|
|
9
9
|
"""
|
|
10
10
|
import os
|
|
11
|
-
from math import isnan
|
|
12
11
|
from arelle import ModelDocument, XmlUtil
|
|
13
12
|
from arelle.ModelValue import qname, dateTime, DATE
|
|
14
|
-
from arelle.
|
|
13
|
+
from arelle.ValidateDuplicateFacts import getDuplicateFactSets
|
|
14
|
+
from arelle.ValidateXbrlCalcs import insignificantDigits
|
|
15
15
|
from arelle.Version import authorLabel, copyrightLabel
|
|
16
16
|
from arelle.XbrlConst import xbrli, qnXbrliXbrl
|
|
17
17
|
import regex as re
|
|
@@ -374,62 +374,12 @@ def validateXbrlFinally(val, *args, **kwargs):
|
|
|
374
374
|
_("Generic dimension members have no associated name or description item, member names (name or description item): %(memberNames)s"),
|
|
375
375
|
modelObject=modelXbrl, memberNames=", ".join(sorted(memLocalNamesMissing)))
|
|
376
376
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
if getattr(f,"xValid", 0) >= 4:
|
|
384
|
-
cuDict = aspectEqualFacts[(f.qname,
|
|
385
|
-
(f.xmlLang or "").lower() if f.concept.type.isWgnStringFactType else None)]
|
|
386
|
-
_matched = False
|
|
387
|
-
for (_cntx,_unit),fList in cuDict.items():
|
|
388
|
-
if (((_cntx is None and f.context is None) or (f.context is not None and f.context.isEqualTo(_cntx))) and
|
|
389
|
-
((_unit is None and f.unit is None) or (f.unit is not None and f.unit.isEqualTo(_unit)))):
|
|
390
|
-
_matched = True
|
|
391
|
-
fList.append(f)
|
|
392
|
-
break
|
|
393
|
-
if not _matched:
|
|
394
|
-
cuDict[(f.context,f.unit)] = [f]
|
|
395
|
-
decVals = {}
|
|
396
|
-
for cuDict in aspectEqualFacts.values(): # dups by qname, lang
|
|
397
|
-
for fList in cuDict.values(): # dups by equal-context equal-unit
|
|
398
|
-
if len(fList) > 1:
|
|
399
|
-
f0 = fList[0]
|
|
400
|
-
if f0.concept.isNumeric:
|
|
401
|
-
if any(f.isNil for f in fList):
|
|
402
|
-
_inConsistent = not all(f.isNil for f in fList)
|
|
403
|
-
else: # not all have same decimals
|
|
404
|
-
_d = inferredDecimals(f0)
|
|
405
|
-
_v = f0.xValue
|
|
406
|
-
_inConsistent = isnan(_v) # NaN is incomparable, always makes dups inconsistent
|
|
407
|
-
decVals[_d] = _v
|
|
408
|
-
aMax, bMin, _inclA, _inclB = rangeValue(_v, _d)
|
|
409
|
-
for f in fList[1:]:
|
|
410
|
-
_d = inferredDecimals(f)
|
|
411
|
-
_v = f.xValue
|
|
412
|
-
if isnan(_v):
|
|
413
|
-
_inConsistent = True
|
|
414
|
-
break
|
|
415
|
-
if _d in decVals:
|
|
416
|
-
_inConsistent |= _v != decVals[_d]
|
|
417
|
-
else:
|
|
418
|
-
decVals[_d] = _v
|
|
419
|
-
a, b, _inclA, _inclB = rangeValue(_v, _d)
|
|
420
|
-
if a > aMax: aMax = a
|
|
421
|
-
if b < bMin: bMin = b
|
|
422
|
-
if not _inConsistent:
|
|
423
|
-
_inConsistent = (bMin < aMax)
|
|
424
|
-
decVals.clear()
|
|
425
|
-
else:
|
|
426
|
-
_inConsistent = any(not f.isVEqualTo(f0) for f in fList[1:])
|
|
427
|
-
if _inConsistent:
|
|
428
|
-
modelXbrl.error("JFCVC.3314",
|
|
429
|
-
"Inconsistent duplicate fact values %(fact)s: %(values)s.",
|
|
430
|
-
modelObject=fList, fact=f0.qname, contextID=f0.contextID, values=", ".join(f.value for f in fList))
|
|
431
|
-
aspectEqualFacts.clear()
|
|
432
|
-
del factForConceptContextUnitHash, aspectEqualFacts
|
|
377
|
+
for duplicateFactSet in getDuplicateFactSets(modelXbrl.facts, includeSingles=False):
|
|
378
|
+
if duplicateFactSet.areAnyInconsistent:
|
|
379
|
+
f0 = duplicateFactSet.facts[0]
|
|
380
|
+
modelXbrl.error("JFCVC.3314",
|
|
381
|
+
"Inconsistent duplicate fact values %(fact)s: %(values)s.",
|
|
382
|
+
modelObject=duplicateFactSet, fact=f0.qname, values=", ".join(f'"{f.value}"' for f in duplicateFactSet))
|
|
433
383
|
|
|
434
384
|
if modelXbrl.modelDocument.type == ModelDocument.Type.INLINEXBRL:
|
|
435
385
|
rootElt = modelXbrl.modelDocument.xmlRootElement
|
|
@@ -116,7 +116,7 @@ arelle/ViewWinVersReport.py,sha256=aYfsOgynVZpMzl6f2EzQCBLzdihYGycwb5SiTghkgMQ,9
|
|
|
116
116
|
arelle/ViewWinXml.py,sha256=4ZGKtjaoCwU9etKYm9ZAS7jSmUxba1rqNEdv0OIyjTY,1250
|
|
117
117
|
arelle/WatchRss.py,sha256=5Ih4igH2MM4hpOuAXy9eO0QAyZ7jZR3S5bPzo2sdFpw,14097
|
|
118
118
|
arelle/WebCache.py,sha256=SLk-S5StYUIucm5bd2BqT-o8ZA0NdYw2Xl4O9vIt7O8,45257
|
|
119
|
-
arelle/XbrlConst.py,sha256=
|
|
119
|
+
arelle/XbrlConst.py,sha256=p5GV8x7ZLNVT-lMo9EEtw8CkVICITxJ4GZXXQFmZQEk,58561
|
|
120
120
|
arelle/XbrlUtil.py,sha256=s2Vmrh-sZI5TeuqsziKignOc3ao-uUgnCNoelP4dDj0,9212
|
|
121
121
|
arelle/XhtmlValidate.py,sha256=0gtm7N-kXK0RB5o3c1AQXjfFuRp1w2fKZZAeyruNANw,5727
|
|
122
122
|
arelle/XmlUtil.py,sha256=1VToOOylF8kbEorEdZLThmq35j9bmuF_DS2q9NthnHU,58774
|
|
@@ -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=gK8aRhTgf0JSYF4-ziM2ZwD_sWJNac2Cf_ZEEYaXGq4,708
|
|
129
129
|
arelle/typing.py,sha256=PRe-Fxwr2SBqYYUVPCJ3E7ddDX0_oOISNdT5Q97EbRM,1246
|
|
130
130
|
arelle/api/Session.py,sha256=kgSxS7VckA1sQ7xp0pJiK7IK-vRxAdAZKUo8gEx27s8,7549
|
|
131
131
|
arelle/config/creationSoftwareNames.json,sha256=5MK7XUjfDJ9OpRCCHXeOErJ1SlTBZji4WEcEOdOacx0,3128
|
|
@@ -316,7 +316,7 @@ arelle/plugin/validate/EDINET/Constants.py,sha256=H_OX8hq7nns6TbKPpmDlg1_pNOd7P-
|
|
|
316
316
|
arelle/plugin/validate/EDINET/ControllerPluginData.py,sha256=T4m8GFiVg9tNoLcC3HxeegNnKVqAqZdc6kNdxM5Vz1Y,7005
|
|
317
317
|
arelle/plugin/validate/EDINET/DisclosureSystems.py,sha256=3rKG42Eg-17Xx_KXU_V5yHW6I3LTwQunvf4a44C9k_4,36
|
|
318
318
|
arelle/plugin/validate/EDINET/ManifestInstance.py,sha256=SkQV-aOsYn3CTgCkH4IXNdM3QKoiz8okwb29ftMtV3Q,6882
|
|
319
|
-
arelle/plugin/validate/EDINET/PluginValidationDataExtension.py,sha256=
|
|
319
|
+
arelle/plugin/validate/EDINET/PluginValidationDataExtension.py,sha256=EkUJvkjk96ehgfnnoUxBAv9x9aauntvF9oXFOyr81Yo,12447
|
|
320
320
|
arelle/plugin/validate/EDINET/ReportFolderType.py,sha256=Q-9a-5tJfhK-cjY8WUB2AT1NI-Nn9cFtARVOIJoLRGU,2979
|
|
321
321
|
arelle/plugin/validate/EDINET/Statement.py,sha256=0Mw5IB7LMtvUZ-2xKZfxmq67xF_dCgJo3eNLweLFRHU,9350
|
|
322
322
|
arelle/plugin/validate/EDINET/UploadContents.py,sha256=IKQYl6lXYTfAZKLIDzRRGSRt3FXoL2Eldbx3Dh7T2I4,712
|
|
@@ -328,9 +328,9 @@ arelle/plugin/validate/EDINET/rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQ
|
|
|
328
328
|
arelle/plugin/validate/EDINET/rules/contexts.py,sha256=KPoyWfRaURvxoGVcWP64mTMTAKPMSmQSX06RClCLddw,7590
|
|
329
329
|
arelle/plugin/validate/EDINET/rules/edinet.py,sha256=VYrDZaKbsQuQEvOY5F0Pv4Jzk9YZ4iETOkAFOggrhEY,12632
|
|
330
330
|
arelle/plugin/validate/EDINET/rules/frta.py,sha256=N0YglHYZuLD2IuwE26viR2ViwUYjneBuMFU9vlrS0aQ,7616
|
|
331
|
-
arelle/plugin/validate/EDINET/rules/gfm.py,sha256=
|
|
331
|
+
arelle/plugin/validate/EDINET/rules/gfm.py,sha256=Elyd0Vqooj_rC0yDWC8NneWCQ_Ckb9IZy1XCn7m1_IE,24389
|
|
332
332
|
arelle/plugin/validate/EDINET/rules/manifests.py,sha256=MoT9R_a4BzuYdQVbF7RC5wz134Ve68svSdJ3NlpO_AU,4026
|
|
333
|
-
arelle/plugin/validate/EDINET/rules/upload.py,sha256=
|
|
333
|
+
arelle/plugin/validate/EDINET/rules/upload.py,sha256=jfBt-WjUiJqh8QSkaLMxfsz9dP6fT3z63GT-ws514YY,31415
|
|
334
334
|
arelle/plugin/validate/ESEF/Const.py,sha256=JujF_XV-_TNsxjGbF-8SQS4OOZIcJ8zhCMnr-C1O5Ho,22660
|
|
335
335
|
arelle/plugin/validate/ESEF/Dimensions.py,sha256=MOJM7vwNPEmV5cu-ZzPrhx3347ZvxgD6643OB2HRnIk,10597
|
|
336
336
|
arelle/plugin/validate/ESEF/Util.py,sha256=QH3btcGqBpr42M7WSKZLSdNXygZaZLfEiEjlxoG21jE,7950
|
|
@@ -367,7 +367,7 @@ arelle/plugin/validate/ROS/resources/config.xml,sha256=HXWume5HlrAqOx5AtiWWqgADb
|
|
|
367
367
|
arelle/plugin/validate/ROS/rules/__init__.py,sha256=wW7BUAIb7sRkOxC1Amc_ZKrz03FM-Qh1TyZe6wxYaAU,1567
|
|
368
368
|
arelle/plugin/validate/ROS/rules/ros.py,sha256=Dk5BkfKQYItImdx5FcFvkMWT5BlJ1r_L7Vn-EsCG85A,19870
|
|
369
369
|
arelle/plugin/validate/UK/ValidateUK.py,sha256=h7-tnCubHme8Meaif-o55TV2rCfMWuikfpZCcK6NNDs,56447
|
|
370
|
-
arelle/plugin/validate/UK/__init__.py,sha256=
|
|
370
|
+
arelle/plugin/validate/UK/__init__.py,sha256=0X4_J9Ug0O0xiEm-JYx7LEnGdpXUKZ7D-5eh9mjjqR8,27456
|
|
371
371
|
arelle/plugin/validate/UK/config.xml,sha256=mUFhWDfBzGTn7v0ZSmf4HaweQTMJh_4ZcJmD9mzCHrA,1547
|
|
372
372
|
arelle/plugin/validate/UK/consistencyChecksByName.json,sha256=BgB9YAWzmcsX-_rU74RBkABwEsS75vrMlwBHsYCz2R0,25247
|
|
373
373
|
arelle/plugin/validate/UK/hmrc-taxonomies.xml,sha256=3lR-wb2sooAddQkVqqRzG_VqLuHq_MQ8kIaXAQs1KVk,9623
|
|
@@ -680,9 +680,9 @@ arelle/utils/validate/ValidationUtil.py,sha256=9vmSvShn-EdQy56dfesyV8JjSRVPj7txr
|
|
|
680
680
|
arelle/utils/validate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
681
681
|
arelle/webserver/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
682
682
|
arelle/webserver/bottle.py,sha256=P-JECd9MCTNcxCnKoDUvGcoi03ezYVOgoWgv2_uH-6M,362
|
|
683
|
-
arelle_release-2.37.
|
|
684
|
-
arelle_release-2.37.
|
|
685
|
-
arelle_release-2.37.
|
|
686
|
-
arelle_release-2.37.
|
|
687
|
-
arelle_release-2.37.
|
|
688
|
-
arelle_release-2.37.
|
|
683
|
+
arelle_release-2.37.52.dist-info/licenses/LICENSE.md,sha256=Q0tn6q0VUbr-NM8916513NCIG8MNzo24Ev-sxMUBRZc,3959
|
|
684
|
+
arelle_release-2.37.52.dist-info/METADATA,sha256=k76rs-k1Xh7_AxEk4QnW0pEKI3JdJxEYvE-9mU9SZIY,9327
|
|
685
|
+
arelle_release-2.37.52.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
686
|
+
arelle_release-2.37.52.dist-info/entry_points.txt,sha256=Uj5niwfwVsx3vaQ3fYj8hrZ1xpfCJyTUA09tYKWbzpo,111
|
|
687
|
+
arelle_release-2.37.52.dist-info/top_level.txt,sha256=fwU7SYawL4_r-sUMRg7r1nYVGjFMSDvRWx8VGAXEw7w,7
|
|
688
|
+
arelle_release-2.37.52.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|