# {py:mod}`arelle.utils.validate.ValidationPlugin` ```{py:module} arelle.utils.validate.ValidationPlugin ``` ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`ValidationPlugin ` - ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin :summary: ``` ```` ### API `````{py:class} ValidationPlugin(name: str, disclosureSystemConfigUrl: pathlib.Path, validationTypes: list[str], validationRuleModules: list[types.ModuleType]) :canonical: arelle.utils.validate.ValidationPlugin.ValidationPlugin ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin.__init__ ``` ````{py:method} newPluginData(validateXbrl: arelle.ValidateXbrl.ValidateXbrl) -> arelle.utils.PluginData.PluginData :canonical: arelle.utils.validate.ValidationPlugin.ValidationPlugin.newPluginData ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin.newPluginData ``` ```` ````{py:property} validationTypes :canonical: arelle.utils.validate.ValidationPlugin.ValidationPlugin.validationTypes :type: tuple[str, ...] ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin.validationTypes ``` ```` ````{py:property} disclosureSystemConfigURL :canonical: arelle.utils.validate.ValidationPlugin.ValidationPlugin.disclosureSystemConfigURL :type: str ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin.disclosureSystemConfigURL ``` ```` ````{py:property} disclosureSystemTypes :canonical: arelle.utils.validate.ValidationPlugin.ValidationPlugin.disclosureSystemTypes :type: tuple[tuple[str, str], ...] ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin.disclosureSystemTypes ``` ```` ````{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.validate.ValidationPlugin.ValidationPlugin.modelDocumentPullLoader :abstractmethod: ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin.modelDocumentPullLoader ``` ```` ````{py:method} modelXbrlLoadComplete(modelXbrl: arelle.ModelXbrl.ModelXbrl, *args: typing.Any, **kwargs: typing.Any) -> arelle.ModelDocument.ModelDocument | arelle.ModelDocument.LoadingException | None :canonical: arelle.utils.validate.ValidationPlugin.ValidationPlugin.modelXbrlLoadComplete :abstractmethod: ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin.modelXbrlLoadComplete ``` ```` ````{py:method} validateXbrlStart(val: arelle.ValidateXbrl.ValidateXbrl, parameters: dict[typing.Any, typing.Any], *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.validate.ValidationPlugin.ValidationPlugin.validateXbrlStart ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin.validateXbrlStart ``` ```` ````{py:method} validateXbrlFinally(val: arelle.ValidateXbrl.ValidateXbrl, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.validate.ValidationPlugin.ValidationPlugin.validateXbrlFinally ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin.validateXbrlFinally ``` ```` ````{py:method} validateXbrlDtsDocument(val: arelle.ValidateXbrl.ValidateXbrl, modelDocument: arelle.ModelDocument.ModelDocument, isFilingDocument: bool, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.validate.ValidationPlugin.ValidationPlugin.validateXbrlDtsDocument ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin.validateXbrlDtsDocument ``` ```` ````{py:method} validateFinally(val: arelle.ValidateXbrl.ValidateXbrl, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.validate.ValidationPlugin.ValidationPlugin.validateFinally ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin.validateFinally ``` ```` ````{py:method} _executeValidations(pluginHook: arelle.utils.PluginHooks.ValidationHook, validateXbrl: arelle.ValidateXbrl.ValidateXbrl, *args: typing.Any, **kwargs: typing.Any) -> None :canonical: arelle.utils.validate.ValidationPlugin.ValidationPlugin._executeValidations ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin._executeValidations ``` ```` ````{py:method} disclosureSystemFromPluginSelected(model: arelle.ValidateXbrl.ValidateXbrl | arelle.ModelXbrl.ModelXbrl) -> bool :canonical: arelle.utils.validate.ValidationPlugin.ValidationPlugin.disclosureSystemFromPluginSelected ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin.disclosureSystemFromPluginSelected ``` ```` ````{py:method} _getValidations(disclosureSystem: arelle.DisclosureSystem.DisclosureSystem, pluginHook: arelle.utils.PluginHooks.ValidationHook) -> list[arelle.utils.validate.Decorator.ValidationFunction] :canonical: arelle.utils.validate.ValidationPlugin.ValidationPlugin._getValidations ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin._getValidations ``` ```` ````{py:method} _discoverValidations() -> None :canonical: arelle.utils.validate.ValidationPlugin.ValidationPlugin._discoverValidations ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin._discoverValidations ``` ```` ````{py:method} _storeValidationFunction(func: arelle.utils.validate.Decorator.ValidationFunction, attributes: arelle.utils.validate.Decorator.ValidationAttributes) -> None :canonical: arelle.utils.validate.ValidationPlugin.ValidationPlugin._storeValidationFunction ```{autodoc2-docstring} arelle.utils.validate.ValidationPlugin.ValidationPlugin._storeValidationFunction ``` ```` `````