arelle.ModelXbrl
¶
See COPYRIGHT.md for copyright information.
Module Contents¶
Classes¶
.. class:: ModelXbrl(modelManager) |
Functions¶
Each loaded instance, DTS, testcase, testsuite, versioning report, or RSS feed, is represented by an instance of a ModelXbrl object. The ModelXbrl object has a collection of ModelDocument objects, each representing an XML document (for now, with SQL whenever its time comes). One of the modelDocuments of the ModelXbrl is the entry point (of discovery or of the test suite). |
|
Data¶
API¶
- arelle.ModelXbrl.profileStatNumber¶
0
- arelle.ModelXbrl.AUTO_LOCATE_ELEMENT¶
‘771407c0-1d0c-11e1-be5e-028037ec0200’
- arelle.ModelXbrl.DEFAULT¶
‘intern(…)’
- arelle.ModelXbrl.NONDEFAULT¶
‘intern(…)’
- arelle.ModelXbrl.DEFAULTorNONDEFAULT¶
‘intern(…)’
- arelle.ModelXbrl.EMPTY_TUPLE: arelle.typing.EmptyTuple¶
()
- arelle.ModelXbrl._NOT_FOUND¶
‘object(…)’
- arelle.ModelXbrl.LoggableValue¶
None
- arelle.ModelXbrl.load(modelManager: arelle.ModelManager.ModelManager, url: str | arelle.FileSource.FileSource, nextaction: str | None = None, base: str | None = None, useFileSource: arelle.FileSource.FileSource | None = None, errorCaptureLevel: str | None = None, **kwargs: str) ModelXbrl ¶
Each loaded instance, DTS, testcase, testsuite, versioning report, or RSS feed, is represented by an instance of a ModelXbrl object. The ModelXbrl object has a collection of ModelDocument objects, each representing an XML document (for now, with SQL whenever its time comes). One of the modelDocuments of the ModelXbrl is the entry point (of discovery or of the test suite).
- Parameters:
url – may be a filename or FileSource object
nextaction – text to use as status line prompt on conclusion of loading and discovery
base – the base URL if any (such as a versioning report’s URL when loading to/from DTS modelXbrl).
useFileSource – for internal use (when an entry point is in a FileSource archive and discovered files expected to also be in the entry point’s archive.
- arelle.ModelXbrl.create(modelManager: arelle.ModelManager.ModelManager, newDocumentType: int | None = None, url: str | None = None, schemaRefs: str | None = None, createModelDocument: bool = True, isEntry: bool = False, errorCaptureLevel: str | None = None, initialXml: str | None = None, initialComment: str | None = None, base: str | None = None, discover: bool = True, xbrliNamespacePrefix: str | None = None) ModelXbrl ¶
- arelle.ModelXbrl.MatchSubstitutionGroupValueType¶
‘TypeVar(…)’
- class arelle.ModelXbrl.ModelXbrl(modelManager: arelle.ModelManager.ModelManager, errorCaptureLevel: str | None = None)¶
.. class:: ModelXbrl(modelManager)
ModelXbrl objects represent loaded instances and inline XBRL instances and their DTSes, DTSes (without instances), versioning reports, testcase indexes, testcase variation documents, and other document-centric loadable objects.
- Parameters:
modelManager – The controller’s modelManager object for the current session or command line process.
Initialization
- closeFileSource: bool¶
None
- dimensionDefaultConcepts: dict[arelle.ModelDtsObject.ModelConcept, arelle.ModelDtsObject.ModelConcept]¶
None
- entryLoadingUrl: str¶
None
- fileSource: arelle.FileSource.FileSource¶
None
- ixdsDocUrls: list[str]¶
None
- ixdsHtmlElements: list[str]¶
None
- isDimensionsValidated: bool¶
None
- locale: arelle.typing.LocaleDict | None¶
None
- modelDocument: arelle.ModelDocument.ModelDocument | None¶
None
- uri: str¶
None
- uriDir: str¶
None
- targetRelationships: set[arelle.ModelObject.ModelObject]¶
None
- qnameDimensionContextElement: dict[arelle.ModelValue.QName, str]¶
None
- _factsByDimQname: dict[arelle.ModelValue.QName, dict[arelle.ModelValue.QName | str | None, set[arelle.ModelInstanceObject.ModelFact]]]¶
None
- _factsByQname: dict[arelle.ModelValue.QName, set[arelle.ModelInstanceObject.ModelFact]]¶
None
- _factsByDatatype: dict[bool | tuple[bool, arelle.ModelValue.QName], set[arelle.ModelInstanceObject.ModelFact]]¶
None
- _factsByLocalName: dict[str, set[arelle.ModelInstanceObject.ModelFact]]¶
None
- _factsByPeriodType: dict[str, set[arelle.ModelInstanceObject.ModelFact]]¶
None
- _nonNilFactsInInstance: set[arelle.ModelInstanceObject.ModelFact]¶
None
- _startedProfiledActivity: float¶
None
- _startedTimeStat: float¶
None
- init(keepViews: bool = False, errorCaptureLevel: str | None = None) None ¶
- close() None ¶
Closes any views, formula output instances, modelDocument(s), and dereferences all memory used
- property isClosed: bool¶
- Returns:
bool – True if closed (python object has deferenced and deleted all attributes after closing)
- reload(nextaction: str, reloadCache: bool = False) None ¶
Reloads all model objects from their original entry point URL, preserving any open views (which are reloaded).
- Parameters:
nextAction – status line text string, if any, to show upon completion
reloadCache – True to force clearing and reloading of web cache, if working online.
- closeViews() None ¶
Close views associated with this modelXbrl
- property displayUri: Any¶
- relationshipSet(arcrole: str, linkrole: tuple[str, ...] | str | None = None, linkqname: arelle.ModelValue.QName | None = None, arcqname: arelle.ModelValue.QName | None = None, includeProhibits: bool = False) arelle.ModelRelationshipSet.ModelRelationshipSet ¶
Returns a relationship set matching specified parameters (only arcrole is required).
Resolve and determine relationship set. If a relationship set of the same parameters was previously resolved, it is returned from a cache.
- Parameters:
arcrole – Required arcrole, or special collective arcroles ‘XBRL-dimensions’, ‘XBRL-formula’, and ‘Table-rendering’
linkrole – Linkrole (wild if None)
arcqname – Arc element qname (wild if None)
includeProhibits – True to include prohibiting arc elements as relationships
- baseSetModelLink(linkElement: Any) Any ¶
- roleUriTitle(roleURI: str) str ¶
- roleTypeDefinition(roleURI: str, lang: str | None = None) str ¶
- roleTypeName(roleURI: str, lang: str | None = None) str ¶
- matchSubstitutionGroup(elementQname: arelle.ModelValue.QName, subsGrpMatchTable: dict[arelle.ModelValue.QName | None, arelle.ModelXbrl.MatchSubstitutionGroupValueType]) arelle.ModelXbrl.MatchSubstitutionGroupValueType | None ¶
Resolve a subsitutionGroup for the elementQname from the match table
Used by ModelObjectFactory to return Class type for new ModelObject subclass creation, and isInSubstitutionGroup
- Parameters:
elementQname – Element/Concept QName to find substitution group
subsGrpMatchTable – Table of substitutions used to determine xml proxy object class for xml elements and substitution group membership
- isInSubstitutionGroup(elementQname: arelle.ModelValue.QName, subsGrpQnames: arelle.ModelValue.QName | collections.abc.Iterable[arelle.ModelValue.QName] | None) bool ¶
Determine if element is in substitution group(s) Used by ModelObjectFactory to return Class type for new ModelObject subclass creation, and isInSubstitutionGroup
- Parameters:
elementQname – Element/Concept QName to determine if in substitution group(s)
subsGrpQnames – QName or iterable of QNames
- createInstance(url: str) None ¶
Creates an instance document for a DTS which didn’t have an instance document, such as to create a new instance for a DTS which was loaded from a taxonomy or linkbase entry point.
- Parameters:
url – File name to save the new instance document
- saveInstance(**kwargs: Any) Any ¶
Saves current instance document file.
- Parameters:
overrideFilepath – specify to override saving in instance’s modelDocument.filepath
- property prefixedNamespaces: dict[str, str]¶
Dict of prefixes for namespaces defined in DTS
- matchContext(entityIdentScheme: str, entityIdentValue: str, periodType: str, periodStart: datetime.date | datetime.datetime, periodEndInstant: datetime.date | datetime.datetime, dims: dict[arelle.ModelInstanceObject.ModelDimensionValue, arelle.ModelValue.QName], segOCCs: arelle.ModelObject.ModelObject, scenOCCs: arelle.ModelObject.ModelObject) arelle.ModelInstanceObject.ModelContext | None ¶
Finds matching context, by aspects, as in formula usage, if any
- Parameters:
entityIdentScheme – Scheme to match
entityIdentValue – Entity identifier value to match
periodType – Period type to match (“instant”, “duration”, or “forever”)
periodStart – Date or dateTime of period start
periodEndInstant – Date or dateTime of period send
dims – Dimensions
segOCCs – Segment non-dimensional nodes
scenOCCs – Scenario non-dimensional nodes
- createContext(entityIdentScheme: str, entityIdentValue: str, periodType: str, periodStart: datetime.datetime | datetime.date, periodEndInstant: datetime.datetime | datetime.date, priItem: arelle.ModelValue.QName | None, dims: dict[int | arelle.ModelValue.QName, arelle.ModelValue.QName | arelle.PrototypeInstanceObject.DimValuePrototype], segOCCs: arelle.ModelObject.ModelObject, scenOCCs: arelle.ModelObject.ModelObject, afterSibling: arelle.ModelObject.ModelObject | str | None = None, beforeSibling: arelle.ModelObject.ModelObject | None = None, id: str | None = None) arelle.ModelObject.ModelObject ¶
Creates a new ModelContext and validates (integrates into modelDocument object model).
- Parameters:
entityIdentScheme – Scheme to match
entityIdentValue – Entity identifier value to match
periodType – Period type to match (“instant”, “duration”, or “forever”)
periodStart – Date or dateTime of period start
periodEndInstant – Date or dateTime of period send
dims – Dimensions
segOCCs – Segment non-dimensional nodes
scenOCCs – Scenario non-dimensional nodes
beforeSibling – lxml element in instance to insert new concept before
afterSibling – lxml element in instance to insert new concept after
id – id to assign to new context, if absent an id will be generated
- matchUnit(multiplyBy: list[arelle.ModelValue.QName], divideBy: list[arelle.ModelValue.QName]) arelle.ModelInstanceObject.ModelUnit | None ¶
Finds matching unit, by measures, as in formula usage, if any
- Parameters:
multiplyBy – List of multiply-by measure QNames (or top level measures if no divideBy)
divideBy – List of multiply-by measure QNames (or empty list if no divideBy)
- createUnit(multiplyBy: list[arelle.ModelValue.QName], divideBy: list[arelle.ModelValue.QName], afterSibling: arelle.ModelObject.ModelObject | None = None, beforeSibling: arelle.ModelObject.ModelObject | None = None, id: str | None = None) arelle.ModelObject.ModelObject ¶
Creates new unit, by measures, as in formula usage, if any
- Parameters:
multiplyBy – List of multiply-by measure QNames (or top level measures if no divideBy)
divideBy – List of multiply-by measure QNames (or empty list if no divideBy)
beforeSibling – lxml element in instance to insert new concept before
afterSibling – lxml element in instance to insert new concept after
id – id to assign to new unit, if absent an id will be generated
- property nonNilFactsInInstance: set[arelle.ModelInstanceObject.ModelFact]¶
Facts in the instance which are not nil, cached
- property factsByQname: dict[arelle.ModelValue.QName, set[arelle.ModelInstanceObject.ModelFact]]¶
Facts in the instance indexed by their QName, cached
- property factsByLocalName: dict[str, set[arelle.ModelInstanceObject.ModelFact]]¶
Facts in the instance indexed by their LocalName, cached
- factsByDatatype(notStrict: bool, typeQname: arelle.ModelValue.QName) set[arelle.ModelInstanceObject.ModelFact] | None ¶
Facts in the instance indexed by data type QName, cached as types are requested
- Parameters:
notSctrict – if True, fact may be derived
- factsByPeriodType(periodType: str) set[arelle.ModelInstanceObject.ModelFact] ¶
Facts in the instance indexed by periodType, cached
- Parameters:
periodType – Period type to match (“instant”, “duration”, or “forever”)
- factsByDimMemQname(dimQname: arelle.ModelValue.QName, memQname: arelle.ModelValue.QName | str | None = None) set[arelle.ModelInstanceObject.ModelFact] ¶
Facts in the instance indexed by their Dimension and Member QName, cached If Member is None, returns facts that have the dimension (explicit or typed) If Member is NONDEFAULT, returns facts that have the dimension (explicit non-default or typed) If Member is DEFAULT, returns facts that have the dimension (explicit non-default or typed) defaulted
- property contextsInUse: Any¶
- property dimensionsInUse: set[Any]¶
- matchFact(otherFact: arelle.ModelInstanceObject.ModelFact, unmatchedFactsStack: list[arelle.ModelInstanceObject.ModelFact] | None = None, deemP0inf: bool = False, matchId: bool = False, matchLang: bool = True) arelle.ModelInstanceObject.ModelFact | None ¶
Finds matching fact, by XBRL 2.1 duplicate definition (if tuple), or by QName and VEquality (if an item), lang and accuracy equality, as in formula and test case usage
- Parameters:
otherFact – Fact to match
- DeemP0inf:
boolean for formula validation to deem P0 facts to be VEqual as if they were P=INF
- createFact(conceptQname: arelle.ModelValue.QName, attributes: tuple[str, str] | tuple[tuple[str, str]] | None = None, text: str | None = None, parent: arelle.ModelObject.ModelObject | None = None, afterSibling: arelle.ModelObject.ModelObject | None = None, beforeSibling: arelle.ModelObject.ModelObject | None = None, validate: bool = True) arelle.ModelInstanceObject.ModelFact | arelle.ModelObject.ModelObject ¶
Creates new fact, as in formula output instance creation, and validates into object model
- Parameters:
conceptQname – QNames of concept
attributes – Tuple of name, value, or tuples of name, value tuples (name,value) or ((name,value)[,(name,value…)]), where name is either QName or clark-notation name string
text – Text content of fact (will be converted to xpath compatible str by FunctionXS.xsString)
parent – lxml element in instance to append as child of
beforeSibling – lxml element in instance to insert new concept before
afterSibling – lxml element in instance to insert new concept after
validate – specify False to block XML Validation (required when constructing a tuple which is invalid until after it’s contents are created)
- setIsModified() None ¶
Records that the underlying document has been modified.
- isModified() bool ¶
Check if the underlying document has been modified.
- modelObject(objectId: str | int) arelle.ModelObject.ModelObject | None ¶
Finds a model object by an ordinal ID which may be buried in a tkinter view id string (e.g., ‘somedesignation_ordinalnumber’).
- Parameters:
objectId – string which includes _ordinalNumber, produced by ModelObject.objectId(), or integer object index
- viewModelObject(objectId: str | int) None ¶
Finds model object, if any, and synchronizes any views displaying it to bring the model object into scrollable view region and highlight it
- Parameters:
objectId – string which includes _ordinalNumber, produced by ModelObject.objectId(), or integer object index
- effectiveMessageCode(messageCodes: tuple[Any] | str) str | None ¶
If codes includes EFM, GFM, HMRC, or SBR-coded error then the code chosen (if a sequence) corresponds to whether EFM, GFM, HMRC, or SBR validation is in effect.
- isLoggingEffectiveFor(**kwargs: Any) bool ¶
- logArguments(messageCode: str, msg: str, codedArgs: dict[str, str]) Any ¶
- loggableValue(argValue: Any) arelle.ModelXbrl.LoggableValue ¶
- debug(codes: str | tuple[str, ...], msg: str, **args: Any) None ¶
Same as error(), but as info
- info(codes: str | tuple[str, ...], msg: str, **args: Any) None ¶
Same as error(), but as info
- warning(codes: str | tuple[str, ...], msg: str, **args: Any) None ¶
Same as error(), but as warning, and no error code saved for Validate
- log(level: str, codes: Any, msg: str, **args: Any) None ¶
Same as error(), but level passed in as argument
- error(codes: str | tuple[str, ...], msg: str, **args: Any) None ¶
Logs a message as info, by code, logging-system message text (using %(name)s named arguments to compose string by locale language), resolving model object references (such as qname), to prevent non-dereferencable memory usage. Supports logging system parameters, and special parameters modelObject, modelXbrl, or modelDocument, to provide trace information to the file, source line, and href (XPath element scheme pointer). Supports the logging exc_info argument.
Args may include a specification of one or more ModelObjects that identify the source of the message, as modelObject={single-modelObject, (sequence-of-modelObjects)} or modelXbrl=modelXbrl or modelDocument=modelDocument.
Args must include a named argument for each msg %(namedArg)s replacement.
- Parameters:
codes – Message code or tuple/list of message codes
msg – Message text string to be formatted and replaced with named parameters in **args
**args – Named arguments including modelObject, modelXbrl, or modelDocument, named arguments in msg string, and any exc_info argument.
messageCodes – If first parameter codes, above, is dynamically formatted, this is a documentation string of the message codes only used for extraction of the message catalog document (not used in run-time processing).
- exception(codes: str | tuple[str, ...], msg: str, **args: str) None ¶
Same as error(), but as exception
- logProfileStats() None ¶
Logs profile stats that were collected
- profileStat(name: str | None = None, stat: float | None = None) None ¶
order 1xx - load, import, setup, etc order 2xx - views, 26x - table lb 3xx diff, other utilities 5xx validation 6xx formula
- profileActivity(activityCompleted: str | None = None, minTimeToShow: float = 0) None ¶
Used to provide interactive GUI messages of long-running processes.
When the time between last profileActivity and this profileActivity exceeds minTimeToShow, then the time is logged (if it is shorter than it is not logged), thus providing feedback of long running (and possibly troublesome) processing steps.
- Parameters:
activityCompleted – Description of activity completed, or None if call is just to demark starting of a profiled activity.
minTimeToShow – Seconds of elapsed time for activity, if longer then the profile message appears in the log.
- saveDTSpackage() None ¶
Contributed program to save DTS package as a zip file. Refactored into a plug-in (and may be removed from main code).