

def __init__(self, modelXbrl):
    self.isInline = (modelXbrl.modelDocument.type == ModelDocument.Type.INLINEXBRL)
    self.url = modelXbrl.modelDocument.uri
    self.basename = cntx.modelDocument.basename
    self.filepath = modelXbrl.modelDocument.filepath
    for attrName in Report.REPORT_ATTRS:
        setattr(self, self.lc(attrName), None)
    self.instanceName = modelXbrl.modelDocument.basename
    for f in modelXbrl.facts:
        cntx = f.context
        if ((cntx is not None) and cntx.isStartEndPeriod and (not cntx.hasSegment)):
            if ((f.qname is not None) and (f.qname.localName in Report.REPORT_ATTRS) and f.xValue):
                setattr(self, self.lc(f.qname.localName), f.xValue)
    self.reportedFiles = ({modelXbrl.modelDocument.basename} | referencedFiles(modelXbrl))
    self.renderedFiles = set()
    self.hasUsGaapTaxonomy = False
    sourceDir = os.path.dirname(modelXbrl.modelDocument.filepath)
    refDocUris = set()

    def addRefDocs(doc):
        for refDoc in doc.referencesDocument.keys():
            _file = refDoc.filepath
            if (refDoc.uri not in refDocUris):
                refDocUris.add(refDoc.uri)
                if (refDoc.filepath and refDoc.filepath.startswith(sourceDir)):
                    self.reportedFiles.add(refDoc.filepath[(len(sourceDir) + 1):])
                addRefDocs(refDoc)
            if ((refDoc.type == ModelDocument.Type.SCHEMA) and refDoc.targetNamespace):
                nsAuthority = authority(refDoc.targetNamespace, includeScheme=False)
                nsPath = refDoc.targetNamespace.split('/')
                if (len(nsPath) > 2):
                    if ((nsAuthority in ('fasb.org', 'xbrl.us')) and (nsPath[(- 2)] == 'us-gaap')):
                        self.hasUsGaapTaxonomy = True
    addRefDocs(modelXbrl.modelDocument)

dataset/ETHPy150Open Arelle/Arelle/arelle/plugin/validate/EFM/__init__.py Report.__init__/VarMisuse@44/60 `modelXbrl`->`cntx`