# {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}`archivePathSeparators ` - ```{autodoc2-docstring} arelle.FileSource.archivePathSeparators :summary: ``` * - {py:obj}`archiveFilenameSuffixes ` - ```{autodoc2-docstring} arelle.FileSource.archiveFilenameSuffixes :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} 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} 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: typing.BinaryIO | FileNamedBytesIO | 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:class} closed :canonical: arelle.FileSource.FileNamedStringIO.closed ``` ````{py:method} detach() :canonical: arelle.FileSource.FileNamedStringIO.detach ```` ```{py:class} encoding :canonical: arelle.FileSource.FileNamedStringIO.encoding ``` ```{py:class} errors :canonical: arelle.FileSource.FileNamedStringIO.errors ``` ````{py:method} fileno() :canonical: arelle.FileSource.FileNamedStringIO.fileno ```` ````{py:method} flush() :canonical: arelle.FileSource.FileNamedStringIO.flush ```` ````{py:method} getvalue() :canonical: arelle.FileSource.FileNamedStringIO.getvalue ```` ````{py:method} isatty() :canonical: arelle.FileSource.FileNamedStringIO.isatty ```` ```{py:class} line_buffering :canonical: arelle.FileSource.FileNamedStringIO.line_buffering ``` ```{py:class} newlines :canonical: arelle.FileSource.FileNamedStringIO.newlines ``` ````{py:method} read() :canonical: arelle.FileSource.FileNamedStringIO.read ```` ````{py:method} readable() :canonical: arelle.FileSource.FileNamedStringIO.readable ```` ````{py:method} readline() :canonical: arelle.FileSource.FileNamedStringIO.readline ```` ````{py:method} readlines() :canonical: arelle.FileSource.FileNamedStringIO.readlines ```` ````{py:method} seek() :canonical: arelle.FileSource.FileNamedStringIO.seek ```` ````{py:method} seekable() :canonical: arelle.FileSource.FileNamedStringIO.seekable ```` ````{py:method} tell() :canonical: arelle.FileSource.FileNamedStringIO.tell ```` ````{py:method} truncate() :canonical: arelle.FileSource.FileNamedStringIO.truncate ```` ````{py:method} writable() :canonical: arelle.FileSource.FileNamedStringIO.writable ```` ````{py:method} write() :canonical: arelle.FileSource.FileNamedStringIO.write ```` ````{py:method} writelines() :canonical: arelle.FileSource.FileNamedStringIO.writelines ```` ````` `````{py:class} FileNamedTextIOWrapper(fileName: str, *args: typing.Any, **kwargs: typing.Any) :canonical: arelle.FileSource.FileNamedTextIOWrapper Bases: {py:obj}`io.TextIOWrapper` ```{py:class} buffer :canonical: arelle.FileSource.FileNamedTextIOWrapper.buffer ``` ````{py:method} close() :canonical: arelle.FileSource.FileNamedTextIOWrapper.close ```` ```{py:class} closed :canonical: arelle.FileSource.FileNamedTextIOWrapper.closed ``` ````{py:method} detach() :canonical: arelle.FileSource.FileNamedTextIOWrapper.detach ```` ```{py:class} encoding :canonical: arelle.FileSource.FileNamedTextIOWrapper.encoding ``` ```{py:class} errors :canonical: arelle.FileSource.FileNamedTextIOWrapper.errors ``` ````{py:method} fileno() :canonical: arelle.FileSource.FileNamedTextIOWrapper.fileno ```` ````{py:method} flush() :canonical: arelle.FileSource.FileNamedTextIOWrapper.flush ```` ````{py:method} isatty() :canonical: arelle.FileSource.FileNamedTextIOWrapper.isatty ```` ```{py:class} line_buffering :canonical: arelle.FileSource.FileNamedTextIOWrapper.line_buffering ``` ```{py:class} name :canonical: arelle.FileSource.FileNamedTextIOWrapper.name ``` ```{py:class} newlines :canonical: arelle.FileSource.FileNamedTextIOWrapper.newlines ``` ````{py:method} read() :canonical: arelle.FileSource.FileNamedTextIOWrapper.read ```` ````{py:method} readable() :canonical: arelle.FileSource.FileNamedTextIOWrapper.readable ```` ````{py:method} readline() :canonical: arelle.FileSource.FileNamedTextIOWrapper.readline ```` ````{py:method} readlines() :canonical: arelle.FileSource.FileNamedTextIOWrapper.readlines ```` ````{py:method} reconfigure() :canonical: arelle.FileSource.FileNamedTextIOWrapper.reconfigure ```` ````{py:method} seek() :canonical: arelle.FileSource.FileNamedTextIOWrapper.seek ```` ````{py:method} seekable() :canonical: arelle.FileSource.FileNamedTextIOWrapper.seekable ```` ````{py:method} tell() :canonical: arelle.FileSource.FileNamedTextIOWrapper.tell ```` ````{py:method} truncate() :canonical: arelle.FileSource.FileNamedTextIOWrapper.truncate ```` ````{py:method} writable() :canonical: arelle.FileSource.FileNamedTextIOWrapper.writable ```` ````{py:method} write() :canonical: arelle.FileSource.FileNamedTextIOWrapper.write ```` ```{py:class} write_through :canonical: arelle.FileSource.FileNamedTextIOWrapper.write_through ``` ````{py:method} writelines() :canonical: arelle.FileSource.FileNamedTextIOWrapper.writelines ```` ````` `````{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:class} closed :canonical: arelle.FileSource.FileNamedBytesIO.closed ``` ````{py:method} detach() :canonical: arelle.FileSource.FileNamedBytesIO.detach ```` ````{py:method} fileno() :canonical: arelle.FileSource.FileNamedBytesIO.fileno ```` ````{py:method} flush() :canonical: arelle.FileSource.FileNamedBytesIO.flush ```` ````{py:method} getbuffer() :canonical: arelle.FileSource.FileNamedBytesIO.getbuffer ```` ````{py:method} getvalue() :canonical: arelle.FileSource.FileNamedBytesIO.getvalue ```` ````{py:method} isatty() :canonical: arelle.FileSource.FileNamedBytesIO.isatty ```` ````{py:method} read() :canonical: arelle.FileSource.FileNamedBytesIO.read ```` ````{py:method} read1() :canonical: arelle.FileSource.FileNamedBytesIO.read1 ```` ````{py:method} readable() :canonical: arelle.FileSource.FileNamedBytesIO.readable ```` ````{py:method} readinto() :canonical: arelle.FileSource.FileNamedBytesIO.readinto ```` ````{py:method} readinto1() :canonical: arelle.FileSource.FileNamedBytesIO.readinto1 ```` ````{py:method} readline() :canonical: arelle.FileSource.FileNamedBytesIO.readline ```` ````{py:method} readlines() :canonical: arelle.FileSource.FileNamedBytesIO.readlines ```` ````{py:method} seek() :canonical: arelle.FileSource.FileNamedBytesIO.seek ```` ````{py:method} seekable() :canonical: arelle.FileSource.FileNamedBytesIO.seekable ```` ````{py:method} tell() :canonical: arelle.FileSource.FileNamedBytesIO.tell ```` ````{py:method} truncate() :canonical: arelle.FileSource.FileNamedBytesIO.truncate ```` ````{py:method} writable() :canonical: arelle.FileSource.FileNamedBytesIO.writable ```` ````{py:method} write() :canonical: arelle.FileSource.FileNamedBytesIO.write ```` ````{py:method} writelines() :canonical: arelle.FileSource.FileNamedBytesIO.writelines ```` ````` `````{py:exception} ArchiveFileIOError(fileSource: arelle.FileSource.FileSource, errno: int, fileName: str) :canonical: arelle.FileSource.ArchiveFileIOError Bases: {py:obj}`OSError` ````{py:method} add_note() :canonical: arelle.FileSource.ArchiveFileIOError.add_note ```` ```{py:class} args :canonical: arelle.FileSource.ArchiveFileIOError.args ``` ```{py:class} characters_written :canonical: arelle.FileSource.ArchiveFileIOError.characters_written ``` ```{py:class} errno :canonical: arelle.FileSource.ArchiveFileIOError.errno ``` ```{py:class} filename :canonical: arelle.FileSource.ArchiveFileIOError.filename ``` ```{py:class} filename2 :canonical: arelle.FileSource.ArchiveFileIOError.filename2 ``` ```{py:class} strerror :canonical: arelle.FileSource.ArchiveFileIOError.strerror ``` ````{py:method} with_traceback() :canonical: arelle.FileSource.ArchiveFileIOError.with_traceback ```` ````` `````{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:attribute} taxonomyPackage :canonical: arelle.FileSource.FileSource.taxonomyPackage :type: dict[str, str | dict[str, str]] | None :value: > None ```{autodoc2-docstring} arelle.FileSource.FileSource.taxonomyPackage ``` ```` ````{py:attribute} mappedPaths :canonical: arelle.FileSource.FileSource.mappedPaths :type: dict[str, str] | None :value: > None ```{autodoc2-docstring} arelle.FileSource.FileSource.mappedPaths ``` ```` ````{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] | None = None, expectTaxonomyPackage: bool = False) -> None :canonical: arelle.FileSource.FileSource.loadTaxonomyPackageMappings ```{autodoc2-docstring} arelle.FileSource.FileSource.loadTaxonomyPackageMappings ``` ```` ````{py:method} openZipStream(sourceZipStream: typing.BinaryIO) -> 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} isReportPackage :canonical: arelle.FileSource.FileSource.isReportPackage :type: bool ```{autodoc2-docstring} arelle.FileSource.FileSource.isReportPackage ``` ```` ````{py:property} reportPackage :canonical: arelle.FileSource.FileSource.reportPackage :type: arelle.packages.report.ReportPackage.ReportPackage | None ```{autodoc2-docstring} arelle.FileSource.FileSource.reportPackage ``` ```` ````{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[typing.TextIO, str | None] :canonical: arelle.FileSource.FileSource.file ```{autodoc2-docstring} arelle.FileSource.FileSource.file ``` ```` ````{py:method} getBytesSize() -> int | None :canonical: arelle.FileSource.FileSource.getBytesSize ```{autodoc2-docstring} arelle.FileSource.FileSource.getBytesSize ``` ```` ````{py:method} getBytesSizeEstimate() -> int | None :canonical: arelle.FileSource.FileSource.getBytesSizeEstimate ```{autodoc2-docstring} arelle.FileSource.FileSource.getBytesSizeEstimate ``` ```` ````{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:property} urlBasename :canonical: arelle.FileSource.FileSource.urlBasename :type: list[str] | str | None ```{autodoc2-docstring} arelle.FileSource.FileSource.urlBasename ``` ```` ````{py:method} hooks(className: str) -> typing.Iterator[typing.Callable[..., typing.Any]] :canonical: arelle.FileSource.FileSource.hooks ```{autodoc2-docstring} arelle.FileSource.FileSource.hooks ``` ```` ````` ````{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[typing.TextIO, str] :canonical: arelle.FileSource.openXmlFileStream ```{autodoc2-docstring} arelle.FileSource.openXmlFileStream ``` ```` ````{py:function} stripDeclarationBytes(xml: bytes, encoding: str | None) -> 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 ``` ````