# {py:mod}`arelle.utils.PluginHooks` ```{py:module} arelle.utils.PluginHooks ``` ```{autodoc2-docstring} arelle.utils.PluginHooks :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`ValidationHook ` - ```{autodoc2-docstring} arelle.utils.PluginHooks.ValidationHook :summary: ``` * - {py:obj}`PluginHooks ` - ```` ### API `````{py:class} ValidationHook(*args, **kwds) :canonical: arelle.utils.PluginHooks.ValidationHook Bases: {py:obj}`enum.Enum` ```{autodoc2-docstring} arelle.utils.PluginHooks.ValidationHook ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} arelle.utils.PluginHooks.ValidationHook.__init__ ``` ````{py:attribute} XBRL_START :canonical: arelle.utils.PluginHooks.ValidationHook.XBRL_START :value: > 'Validate.XBRL.Start' ```{autodoc2-docstring} arelle.utils.PluginHooks.ValidationHook.XBRL_START ``` ```` ````{py:attribute} XBRL_FINALLY :canonical: arelle.utils.PluginHooks.ValidationHook.XBRL_FINALLY :value: > 'Validate.XBRL.Finally' ```{autodoc2-docstring} arelle.utils.PluginHooks.ValidationHook.XBRL_FINALLY ``` ```` ````{py:attribute} XBRL_DTS_DOCUMENT :canonical: arelle.utils.PluginHooks.ValidationHook.XBRL_DTS_DOCUMENT :value: > 'Validate.XBRL.DTS.document' ```{autodoc2-docstring} arelle.utils.PluginHooks.ValidationHook.XBRL_DTS_DOCUMENT ``` ```` ````{py:attribute} FINALLY :canonical: arelle.utils.PluginHooks.ValidationHook.FINALLY :value: > 'Validate.Finally' ```{autodoc2-docstring} arelle.utils.PluginHooks.ValidationHook.FINALLY ``` ```` ````` `````{py:class} PluginHooks :canonical: arelle.utils.PluginHooks.PluginHooks Bases: {py:obj}`abc.ABC` ````{py:method} cntlrCmdLineOptions(parser: optparse.OptionParser, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.cntlrCmdLineOptions :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.cntlrCmdLineOptions ``` ```` ````{py:method} cntlrCmdLineUtilityRun(cntlr: arelle.Cntlr.Cntlr, options: arelle.RuntimeOptions.RuntimeOptions, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.cntlrCmdLineUtilityRun :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.cntlrCmdLineUtilityRun ``` ```` ````{py:method} cntlrCmdLineXbrlRun(cntlr: arelle.CntlrCmdLine.CntlrCmdLine, options: arelle.RuntimeOptions.RuntimeOptions, modelXbrl: arelle.ModelXbrl.ModelXbrl, entrypoint: dict[str, str] | None = None, sourceZipStream: typing.BinaryIO | None = None, responseZipStream: typing.BinaryIO | None = None, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.cntlrCmdLineXbrlRun :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.cntlrCmdLineXbrlRun ``` ```` ````{py:method} cntlrInit(cntlr: arelle.Cntlr.Cntlr, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.cntlrInit :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.cntlrInit ``` ```` ````{py:method} cntlrWebMainStartWebServer(app: arelle.webserver.bottle.Bottle, cntlr: arelle.CntlrCmdLine.CntlrCmdLine, host: str, port: str, server: str, *args: typing.Any, **kwargs: typing.Any) -> str | None :canonical: arelle.utils.PluginHooks.PluginHooks.cntlrWebMainStartWebServer :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.cntlrWebMainStartWebServer ``` ```` ````{py:method} cntlrWinMainMenuHelp(cntlr: arelle.CntlrWinMain.CntlrWinMain, menu: tkinter.Menu, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.cntlrWinMainMenuHelp :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.cntlrWinMainMenuHelp ``` ```` ````{py:method} cntlrWinMainMenuTools(cntlr: arelle.CntlrWinMain.CntlrWinMain, menu: tkinter.Menu, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.cntlrWinMainMenuTools :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.cntlrWinMainMenuTools ``` ```` ````{py:method} cntlrWinMainMenuValidation(cntlr: arelle.CntlrWinMain.CntlrWinMain, menu: tkinter.Menu, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.cntlrWinMainMenuValidation :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.cntlrWinMainMenuValidation ``` ```` ````{py:method} cntlrWinMainMenuView(cntlr: arelle.CntlrWinMain.CntlrWinMain, menu: tkinter.Menu, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.cntlrWinMainMenuView :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.cntlrWinMainMenuView ``` ```` ````{py:method} disclosureSystemConfigURL(disclosureSystem: arelle.DisclosureSystem.DisclosureSystem, *args: typing.Any, **kwargs: typing.Any) -> str :canonical: arelle.utils.PluginHooks.PluginHooks.disclosureSystemConfigURL :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.disclosureSystemConfigURL ``` ```` ````{py:method} disclosureSystemTypes(disclosureSystem: arelle.DisclosureSystem.DisclosureSystem, *args: typing.Any, **kwargs: typing.Any) -> tuple[tuple[str, str], ...] :canonical: arelle.utils.PluginHooks.PluginHooks.disclosureSystemTypes :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.disclosureSystemTypes ``` ```` ````{py:method} fileSourceExists(cntlr: arelle.Cntlr.Cntlr, filepath: str, *args: typing.Any, **kwargs: typing.Any) -> bool | None :canonical: arelle.utils.PluginHooks.PluginHooks.fileSourceExists :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.fileSourceExists ``` ```` ````{py:method} fileSourceFile(cntlr: arelle.Cntlr.Cntlr, filepath: str, binary: bool, stripDeclaration: bool, *args: typing.Any, **kwargs: typing.Any) -> tuple[io.BytesIO | None] | tuple[io.TextIOWrapper, str] :canonical: arelle.utils.PluginHooks.PluginHooks.fileSourceFile :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.fileSourceFile ``` ```` ````{py:method} modelDocumentIsPullLoadable(modelXbrl: arelle.ModelXbrl.ModelXbrl, mappedUri: str, normalizedUri: str, filepath: str, isEntry: bool, namespace: str, *args: typing.Any, **kwargs: typing.Any) -> bool :canonical: arelle.utils.PluginHooks.PluginHooks.modelDocumentIsPullLoadable :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.modelDocumentIsPullLoadable ``` ```` ````{py:method} modelDocumentPullLoader(modelXbrl: arelle.ModelXbrl.ModelXbrl, normalizedUri: str, filepath: str, isEntry: bool, namespace: str | None, *args: typing.Any, **kwargs: typing.Any) -> arelle.ModelDocument.ModelDocument | arelle.ModelDocument.LoadingException | None :canonical: arelle.utils.PluginHooks.PluginHooks.modelDocumentPullLoader :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.modelDocumentPullLoader ``` ```` ````{py:method} modelManagerLoad(manager: arelle.ModelManager.ModelManager, fileSource: arelle.FileSource.FileSource, *args: typing.Any, **kwargs: typing.Any) -> arelle.ModelXbrl.ModelXbrl | None :canonical: arelle.utils.PluginHooks.PluginHooks.modelManagerLoad :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.modelManagerLoad ``` ```` ````{py:method} modelXbrlInit(modelXbrl: arelle.ModelXbrl.ModelXbrl, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.modelXbrlInit :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.modelXbrlInit ``` ```` ````{py:method} modelXbrlLoadComplete(modelXbrl: arelle.ModelXbrl.ModelXbrl, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.modelXbrlLoadComplete :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.modelXbrlLoadComplete ``` ```` ````{py:method} validateFinally(val: arelle.ValidateXbrl.ValidateXbrl, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.validateFinally :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.validateFinally ``` ```` ````{py:method} validateFormulaCompiled(modelXbrl: arelle.ModelXbrl.ModelXbrl, xpathContext: arelle.formula.XPathContext.XPathContext, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.validateFormulaCompiled :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.validateFormulaCompiled ``` ```` ````{py:method} validateFormulaFinished(val: arelle.ValidateXbrl.ValidateXbrl, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.validateFormulaFinished :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.validateFormulaFinished ``` ```` ````{py:method} validateXbrlDtsDocument(val: arelle.ValidateXbrl.ValidateXbrl, modelDocument: arelle.ModelDocument.ModelDocument, isFilingDocument: bool, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.validateXbrlDtsDocument :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.validateXbrlDtsDocument ``` ```` ````{py:method} validateXbrlFinally(val: arelle.ValidateXbrl.ValidateXbrl, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.validateXbrlFinally :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.validateXbrlFinally ``` ```` ````{py:method} validateXbrlStart(val: arelle.ValidateXbrl.ValidateXbrl, parameters: dict[typing.Any, typing.Any], *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.validateXbrlStart :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.validateXbrlStart ``` ```` ````{py:method} modelTestcaseVariationReportPackageIxdsOptions(val: arelle.ValidateXbrl.ValidateXbrl, rptPkgIxdsOptions: dict[str, bool], *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.modelTestcaseVariationReportPackageIxdsOptions :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.modelTestcaseVariationReportPackageIxdsOptions ``` ```` ````{py:method} testcaseVariationValidated(testcaseDTS: arelle.ModelXbrl.ModelXbrl, testInstanceDTS: arelle.ModelXbrl.ModelXbrl, extraErrors: list[str], inputDTSes: dict[str, arelle.ModelXbrl.ModelXbrl], *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.testcaseVariationValidated :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.testcaseVariationValidated ``` ```` ````{py:method} saveLoadableOimSave(modelXbrl: arelle.ModelXbrl.ModelXbrl, oimFile: str, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.PluginHooks.PluginHooks.saveLoadableOimSave :abstractmethod: :staticmethod: ```{autodoc2-docstring} arelle.utils.PluginHooks.PluginHooks.saveLoadableOimSave ``` ```` `````