# {py:mod}`arelle.FileSource` ```{py:module} arelle.FileSource ``` ```{autodoc2-docstring} arelle.FileSource :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`FileNamedStringIO ` - * - {py:obj}`FileNamedTextIOWrapper ` - * - {py:obj}`FileNamedBytesIO ` - * - {py:obj}`FileSource ` - ```{autodoc2-docstring} arelle.FileSource.FileSource :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`openFileSource ` - ```{autodoc2-docstring} arelle.FileSource.openFileSource :summary: ``` * - {py:obj}`archiveFilenameParts ` - ```{autodoc2-docstring} arelle.FileSource.archiveFilenameParts :summary: ``` * - {py:obj}`openFileStream ` - ```{autodoc2-docstring} arelle.FileSource.openFileStream :summary: ``` * - {py:obj}`openXmlFileStream ` - ```{autodoc2-docstring} arelle.FileSource.openXmlFileStream :summary: ``` * - {py:obj}`stripDeclarationBytes ` - ```{autodoc2-docstring} arelle.FileSource.stripDeclarationBytes :summary: ``` * - {py:obj}`stripDeclarationText ` - ```{autodoc2-docstring} arelle.FileSource.stripDeclarationText :summary: ``` * - {py:obj}`saveFile ` - ```{autodoc2-docstring} arelle.FileSource.saveFile :summary: ``` * - {py:obj}`gaeGet ` - ```{autodoc2-docstring} arelle.FileSource.gaeGet :summary: ``` * - {py:obj}`gaeDelete ` - ```{autodoc2-docstring} arelle.FileSource.gaeDelete :summary: ``` * - {py:obj}`gaeSet ` - ```{autodoc2-docstring} arelle.FileSource.gaeSet :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`_ ` - ```{autodoc2-docstring} arelle.FileSource._ :summary: ``` * - {py:obj}`archivePathSeparators ` - ```{autodoc2-docstring} arelle.FileSource.archivePathSeparators :summary: ``` * - {py:obj}`archiveFilenameSuffixes ` - ```{autodoc2-docstring} arelle.FileSource.archiveFilenameSuffixes :summary: ``` * - {py:obj}`POST_UPLOADED_ZIP ` - ```{autodoc2-docstring} arelle.FileSource.POST_UPLOADED_ZIP :summary: ``` * - {py:obj}`SERVER_WEB_CACHE ` - ```{autodoc2-docstring} arelle.FileSource.SERVER_WEB_CACHE :summary: ``` * - {py:obj}`TAXONOMY_PACKAGE_FILE_NAMES ` - ```{autodoc2-docstring} arelle.FileSource.TAXONOMY_PACKAGE_FILE_NAMES :summary: ``` * - {py:obj}`gaeMemcache ` - ```{autodoc2-docstring} arelle.FileSource.gaeMemcache :summary: ``` * - {py:obj}`GAE_MEMCACHE_MAX_ITEM_SIZE ` - ```{autodoc2-docstring} arelle.FileSource.GAE_MEMCACHE_MAX_ITEM_SIZE :summary: ``` * - {py:obj}`GAE_EXPIRE_WEEK ` - ```{autodoc2-docstring} arelle.FileSource.GAE_EXPIRE_WEEK :summary: ``` ```` ### API ````{py:data} _ :canonical: arelle.FileSource._ :type: arelle.typing.TypeGetText :value: > None ```{autodoc2-docstring} arelle.FileSource._ ``` ```` ````{py:data} archivePathSeparators :canonical: arelle.FileSource.archivePathSeparators :value: > None ```{autodoc2-docstring} arelle.FileSource.archivePathSeparators ``` ```` ````{py:data} archiveFilenameSuffixes :canonical: arelle.FileSource.archiveFilenameSuffixes :value: > None ```{autodoc2-docstring} arelle.FileSource.archiveFilenameSuffixes ``` ```` ````{py:data} POST_UPLOADED_ZIP :canonical: arelle.FileSource.POST_UPLOADED_ZIP :value: > None ```{autodoc2-docstring} arelle.FileSource.POST_UPLOADED_ZIP ``` ```` ````{py:data} SERVER_WEB_CACHE :canonical: arelle.FileSource.SERVER_WEB_CACHE :value: > None ```{autodoc2-docstring} arelle.FileSource.SERVER_WEB_CACHE ``` ```` ````{py:data} TAXONOMY_PACKAGE_FILE_NAMES :canonical: arelle.FileSource.TAXONOMY_PACKAGE_FILE_NAMES :value: > ('.taxonomyPackage.xml', 'catalog.xml') ```{autodoc2-docstring} arelle.FileSource.TAXONOMY_PACKAGE_FILE_NAMES ``` ```` ````{py:function} openFileSource(filename: str | None, cntlr: arelle.Cntlr.Cntlr | None = None, sourceZipStream: str | None = None, checkIfXmlIsEis: bool = False, reloadCache: bool = False, base: str | None = None, sourceFileSource: FileSource | None = None) -> FileSource :canonical: arelle.FileSource.openFileSource ```{autodoc2-docstring} arelle.FileSource.openFileSource ``` ```` ````{py:function} archiveFilenameParts(filename: str | None, checkIfXmlIsEis: bool = False) -> tuple[str, str] | None :canonical: arelle.FileSource.archiveFilenameParts ```{autodoc2-docstring} arelle.FileSource.archiveFilenameParts ``` ```` `````{py:class} FileNamedStringIO(fileName: str, *args: typing.Any, **kwargs: typing.Any) :canonical: arelle.FileSource.FileNamedStringIO Bases: {py:obj}`io.StringIO` ````{py:method} close() -> None :canonical: arelle.FileSource.FileNamedStringIO.close ```` ````{py:method} __str__() -> str :canonical: arelle.FileSource.FileNamedStringIO.__str__ ```` ````` `````{py:class} FileNamedTextIOWrapper(fileName: str, *args: typing.Any, **kwargs: typing.Any) :canonical: arelle.FileSource.FileNamedTextIOWrapper Bases: {py:obj}`io.TextIOWrapper` ````{py:method} __str__() -> str :canonical: arelle.FileSource.FileNamedTextIOWrapper.__str__ ```` ````` `````{py:class} FileNamedBytesIO(fileName: str, *args: typing.Any, **kwargs: typing.Any) :canonical: arelle.FileSource.FileNamedBytesIO Bases: {py:obj}`io.BytesIO` ````{py:method} close() -> None :canonical: arelle.FileSource.FileNamedBytesIO.close ```` ````{py:method} __str__() -> str :canonical: arelle.FileSource.FileNamedBytesIO.__str__ ```` ````` ```{py:exception} ArchiveFileIOError(fileSource: arelle.FileSource.FileSource, errno: int, fileName: str) :canonical: arelle.FileSource.ArchiveFileIOError Bases: {py:obj}`OSError` ``` `````{py:class} FileSource(url: str, cntlr: arelle.Cntlr.Cntlr | None = None, checkIfXmlIsEis: bool = False) :canonical: arelle.FileSource.FileSource ```{autodoc2-docstring} arelle.FileSource.FileSource ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} arelle.FileSource.FileSource.__init__ ``` ````{py:attribute} eisDocument :canonical: arelle.FileSource.FileSource.eisDocument :type: lxml.etree._ElementTree | None :value: > None ```{autodoc2-docstring} arelle.FileSource.FileSource.eisDocument ``` ```` ````{py:attribute} fs :canonical: arelle.FileSource.FileSource.fs :type: zipfile.ZipFile | tarfile.TarFile | io.StringIO | None :value: > None ```{autodoc2-docstring} arelle.FileSource.FileSource.fs ``` ```` ````{py:attribute} filesDir :canonical: arelle.FileSource.FileSource.filesDir :type: list[str] | None :value: > None ```{autodoc2-docstring} arelle.FileSource.FileSource.filesDir ``` ```` ````{py:attribute} referencedFileSources :canonical: arelle.FileSource.FileSource.referencedFileSources :type: dict[str, arelle.FileSource.FileSource] :value: > None ```{autodoc2-docstring} arelle.FileSource.FileSource.referencedFileSources ``` ```` ````{py:attribute} rssDocument :canonical: arelle.FileSource.FileSource.rssDocument :type: lxml.etree._ElementTree | None :value: > None ```{autodoc2-docstring} arelle.FileSource.FileSource.rssDocument ``` ```` ````{py:attribute} selection :canonical: arelle.FileSource.FileSource.selection :type: str | list[str] | None :value: > None ```{autodoc2-docstring} arelle.FileSource.FileSource.selection ``` ```` ````{py:attribute} url :canonical: arelle.FileSource.FileSource.url :type: str | list[str] | None :value: > None ```{autodoc2-docstring} arelle.FileSource.FileSource.url ``` ```` ````{py:attribute} basefile :canonical: arelle.FileSource.FileSource.basefile :type: str | list[str] | None :value: > None ```{autodoc2-docstring} arelle.FileSource.FileSource.basefile ``` ```` ````{py:attribute} xfdDocument :canonical: arelle.FileSource.FileSource.xfdDocument :type: lxml.etree._ElementTree | None :value: > None ```{autodoc2-docstring} arelle.FileSource.FileSource.xfdDocument ``` ```` ````{py:method} logError(err: Exception) -> None :canonical: arelle.FileSource.FileSource.logError ```{autodoc2-docstring} arelle.FileSource.FileSource.logError ``` ```` ````{py:method} open(reloadCache: bool = False) -> None :canonical: arelle.FileSource.FileSource.open ```{autodoc2-docstring} arelle.FileSource.FileSource.open ``` ```` ````{py:method} loadTaxonomyPackageMappings(errors: list[str] = [], expectTaxonomyPackage: bool = False) -> None :canonical: arelle.FileSource.FileSource.loadTaxonomyPackageMappings ```{autodoc2-docstring} arelle.FileSource.FileSource.loadTaxonomyPackageMappings ``` ```` ````{py:method} openZipStream(sourceZipStream: str) -> None :canonical: arelle.FileSource.FileSource.openZipStream ```{autodoc2-docstring} arelle.FileSource.FileSource.openZipStream ``` ```` ````{py:method} close() -> None :canonical: arelle.FileSource.FileSource.close ```{autodoc2-docstring} arelle.FileSource.FileSource.close ``` ```` ````{py:property} isArchive :canonical: arelle.FileSource.FileSource.isArchive :type: bool ```{autodoc2-docstring} arelle.FileSource.FileSource.isArchive ``` ```` ````{py:property} isTaxonomyPackage :canonical: arelle.FileSource.FileSource.isTaxonomyPackage :type: bool ```{autodoc2-docstring} arelle.FileSource.FileSource.isTaxonomyPackage ``` ```` ````{py:property} taxonomyPackageMetadataFiles :canonical: arelle.FileSource.FileSource.taxonomyPackageMetadataFiles :type: list[str] ```{autodoc2-docstring} arelle.FileSource.FileSource.taxonomyPackageMetadataFiles ``` ```` ````{py:method} isInArchive(filepath: str | None, checkExistence: bool = False) -> bool :canonical: arelle.FileSource.FileSource.isInArchive ```{autodoc2-docstring} arelle.FileSource.FileSource.isInArchive ``` ```` ````{py:method} isMappedUrl(url: str) -> bool :canonical: arelle.FileSource.FileSource.isMappedUrl ```{autodoc2-docstring} arelle.FileSource.FileSource.isMappedUrl ``` ```` ````{py:method} mappedUrl(url: str) -> str :canonical: arelle.FileSource.FileSource.mappedUrl ```{autodoc2-docstring} arelle.FileSource.FileSource.mappedUrl ``` ```` ````{py:method} fileSourceContainingFilepath(filepath: str | None) -> arelle.FileSource.FileSource | None :canonical: arelle.FileSource.FileSource.fileSourceContainingFilepath ```{autodoc2-docstring} arelle.FileSource.FileSource.fileSourceContainingFilepath ``` ```` ````{py:method} file(filepath: str, binary: bool = False, stripDeclaration: bool = False, encoding: str | None = None) -> tuple[io.BytesIO | typing.IO[typing.Any]] | tuple[arelle.FileSource.FileNamedTextIOWrapper, str | None] | tuple[io.TextIOWrapper, str | None] :canonical: arelle.FileSource.FileSource.file ```{autodoc2-docstring} arelle.FileSource.FileSource.file ``` ```` ````{py:method} exists(filepath: str) -> bool :canonical: arelle.FileSource.FileSource.exists ```{autodoc2-docstring} arelle.FileSource.FileSource.exists ``` ```` ````{py:property} dir :canonical: arelle.FileSource.FileSource.dir :type: list[str] | None ```{autodoc2-docstring} arelle.FileSource.FileSource.dir ``` ```` ````{py:method} basedUrl(selection: str) -> str :canonical: arelle.FileSource.FileSource.basedUrl ```{autodoc2-docstring} arelle.FileSource.FileSource.basedUrl ``` ```` ````{py:method} select(selection: str | list[str] | None) -> None :canonical: arelle.FileSource.FileSource.select ```{autodoc2-docstring} arelle.FileSource.FileSource.select ``` ```` ````` ````{py:function} openFileStream(cntlr: arelle.Cntlr.Cntlr | None, filepath: str, mode: str = 'r', encoding: str | None = None) -> io.BytesIO | typing.IO[typing.Any] :canonical: arelle.FileSource.openFileStream ```{autodoc2-docstring} arelle.FileSource.openFileStream ``` ```` ````{py:function} openXmlFileStream(cntlr: arelle.Cntlr.Cntlr | None, filepath: str, stripDeclaration: bool = False) -> tuple[io.TextIOWrapper, str] :canonical: arelle.FileSource.openXmlFileStream ```{autodoc2-docstring} arelle.FileSource.openXmlFileStream ``` ```` ````{py:function} stripDeclarationBytes(xml: bytes) -> bytes :canonical: arelle.FileSource.stripDeclarationBytes ```{autodoc2-docstring} arelle.FileSource.stripDeclarationBytes ``` ```` ````{py:function} stripDeclarationText(text: str) -> str :canonical: arelle.FileSource.stripDeclarationText ```{autodoc2-docstring} arelle.FileSource.stripDeclarationText ``` ```` ````{py:function} saveFile(cntlr: arelle.Cntlr.Cntlr, filepath: str, contents: str, encoding: str | None = None, mode: str = 'wt') -> None :canonical: arelle.FileSource.saveFile ```{autodoc2-docstring} arelle.FileSource.saveFile ``` ```` ````{py:data} gaeMemcache :canonical: arelle.FileSource.gaeMemcache :value: > None ```{autodoc2-docstring} arelle.FileSource.gaeMemcache ``` ```` ````{py:data} GAE_MEMCACHE_MAX_ITEM_SIZE :canonical: arelle.FileSource.GAE_MEMCACHE_MAX_ITEM_SIZE :value: > None ```{autodoc2-docstring} arelle.FileSource.GAE_MEMCACHE_MAX_ITEM_SIZE ``` ```` ````{py:data} GAE_EXPIRE_WEEK :canonical: arelle.FileSource.GAE_EXPIRE_WEEK :value: > None ```{autodoc2-docstring} arelle.FileSource.GAE_EXPIRE_WEEK ``` ```` ````{py:function} gaeGet(key: str) -> bytes | None :canonical: arelle.FileSource.gaeGet ```{autodoc2-docstring} arelle.FileSource.gaeGet ``` ```` ````{py:function} gaeDelete(key: str) -> bool :canonical: arelle.FileSource.gaeDelete ```{autodoc2-docstring} arelle.FileSource.gaeDelete ``` ```` ````{py:function} gaeSet(key: str, bytesValue: bytes) -> bool :canonical: arelle.FileSource.gaeSet ```{autodoc2-docstring} arelle.FileSource.gaeSet ``` ````