Module Expr Str Import alias alias alias alias alias alias ImportFrom alias alias ImportFrom alias ImportFrom alias alias alias alias ImportFrom alias alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias alias Assign NameStore NameLoad Assign NameStore NameLoad Assign NameStore NameLoad ClassDef bases NameLoad body FunctionDef arguments args NameParam defaults body Pass decorator_list decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr While CompareIsNot NameLoad NameLoad body If BoolOpAnd Call NameLoad NameLoad AttributeLoad NameLoad attr CompareEq AttributeLoad NameLoad attr NameLoad body Return NameLoad Assign NameStore Call AttributeLoad NameLoad attr Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults NameLoad body For NameStore Call AttributeLoad NameLoad attr keyword NameLoad body If Call NameLoad NameLoad AttributeLoad NameLoad attr body If CompareEq AttributeLoad NameLoad attr NameLoad body Return NameLoad orelse Break Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore Str While CompareIsNot NameLoad NameLoad body If BoolOpAnd Call NameLoad NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore BinOpAdd BinOpAdd AttributeLoad NameLoad attr Str NameLoad Assign NameStore Call AttributeLoad NameLoad attr Return BoolOpOr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults vararg kwarg body If UnaryOpNot NameLoad body Return NameLoad Assign AttributeStore NameLoad attr NameLoad FunctionDef arguments args NameParam defaults body For NameStore AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr Str Call NameLoad Str keyword NameLoad keyword Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr keyword Str decorator_list Assign TupleStore NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad keyword NameLoad Assign NameStore Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Expr Str Assign NameStore NameLoad Assign NameStore NameLoad Assign NameStore NameLoad Assign NameStore NameLoad Assign NameStore Num Assign NameStore Num Assign NameStore NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad keyword TupleLoad Str Str keyword NameLoad TryExcept body For TupleStore NameStore NameStore NameLoad body If CompareEq NameLoad Str body If CompareIsNot Call AttributeLoad NameLoad attr NameLoad body If CompareEq AttributeLoad Call AttributeLoad NameLoad attr attr Str body If UnaryOpNot NameLoad body Assign NameStore NameLoad Assign NameStore Call NameLoad NameLoad Str If CompareIs NameLoad NameLoad body Break orelse Assign NameStore Call NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr If CompareIs NameLoad NameLoad body Assign NameStore Call NameLoad NameLoad If UnaryOpNot Call AttributeLoad AttributeLoad NameLoad attr attr Str body AugAssignAdd NameStore Num If CompareEq BinOpMod NameLoad Num Num body Expr Call AttributeLoad NameLoad attr Str keyword Num orelse If UnaryOpNot NameLoad body Break orelse If CompareEq AttributeLoad NameLoad attr Str body Assign NameStore Call NameLoad NameLoad If CompareIsNot Call NameLoad NameLoad Str NameLoad body Expr Call AttributeLoad NameLoad attr Str Call NameLoad Str keyword NameLoad orelse If CompareEq NameLoad Str body Expr Call AttributeLoad NameLoad attr AugAssignAdd NameStore Num If BoolOpAnd CompareEq BinOpMod NameLoad Num Num CompareIsNot Call AttributeLoad NameLoad attr NameLoad body While BoolOpAnd CompareIsNot Call AttributeLoad NameLoad attr NameLoad CompareIsNot Call AttributeLoad NameLoad attr NameLoad body Delete SubscriptDel Call AttributeLoad NameLoad attr Index Num handlers ExceptHandler type AttributeLoad NameLoad attr name NameStore body Expr Call AttributeLoad NameLoad attr Str Call NameLoad Str keyword NameLoad Expr Call AttributeLoad NameLoad attr Return NameLoad Expr Call AttributeLoad NameLoad attr Num AttributeLoad NameLoad attr If BoolOpOr UnaryOpNot NameLoad CompareIs NameLoad NameLoad body Delete NameDel Expr Call AttributeLoad NameLoad attr Return NameLoad Expr Call AttributeLoad NameLoad attr Call NameLoad Str BinOpSub Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr TryExcept body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Str If CompareNotEq Call NameLoad NameLoad Num body Expr Call AttributeLoad NameLoad attr Str Call NameLoad Str keyword NameLoad keyword NameLoad Assign NameStore NameLoad handlers ExceptHandler type TupleLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Str Call NameLoad Str keyword NameLoad keyword Call AttributeLoad NameLoad attr Str Str Assign NameStore NameLoad For NameStore TupleLoad Str Str Str body TryExcept body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad Str If BoolOpOr CompareLt NameLoad Num BoolOpAnd Call AttributeLoad NameLoad attr CompareNotEq BinOpMod NameLoad Num Num body Raise NameLoad orelse If CompareEq NameLoad Str body Assign NameStore NameLoad orelse If CompareEq NameLoad Str body Assign NameStore NameLoad orelse If CompareEq NameLoad Str body Assign NameStore NameLoad handlers ExceptHandler type NameLoad body Expr Call AttributeLoad NameLoad attr Str Call NameLoad Str keyword NameLoad keyword NameLoad keyword Call AttributeLoad NameLoad attr NameLoad Assign NameStore NameLoad If NameLoad body Assign NameStore ListLoad Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr If BoolOpAnd NameLoad CompareEq AttributeLoad NameLoad attr Str body Expr Call AttributeLoad NameLoad attr Str If BoolOpAnd NameLoad CompareEq AttributeLoad NameLoad attr Str body Expr Call AttributeLoad NameLoad attr Str If BoolOpAnd NameLoad CompareEq AttributeLoad NameLoad attr Str body Expr Call AttributeLoad NameLoad attr Str If AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad NameLoad attr Str If NameLoad body Expr Call AttributeLoad NameLoad attr Str Call NameLoad Str keyword NameLoad keyword Call AttributeLoad Str attr NameLoad Assign NameStore NameLoad If AttributeLoad NameLoad attr body Assign NameStore NameLoad Expr Call NameLoad NameLoad Delete NameDel For NameStore Call NameLoad Str body Assign NameStore Call NameLoad NameLoad If NameLoad body Expr Call AttributeLoad NameLoad attr Str Call NameLoad Str keyword NameLoad keyword NameLoad Assign NameStore NameLoad If NameLoad body Expr Call AttributeLoad NameLoad attr Return NameLoad Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr Num AttributeLoad NameLoad attr If NameLoad body Assign NameStore Call NameLoad NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore Call NameLoad GeneratorExp NameLoad comprehension NameStore Call NameLoad Str Assign NameStore BoolOpAnd NameLoad Call NameLoad GeneratorExp NameLoad comprehension NameStore Call NameLoad Str Expr Str Assign NameStore Call AttributeLoad NameLoad attr NameLoad keyword TupleLoad Str Str keyword NameLoad ImportFrom alias Assign AttributeStore NameLoad attr NameLoad Assign TupleStore NameStore NameStore NameStore Call NameLoad NameLoad NameLoad Assign NameStore NameLoad Assign NameStore NameStore NameLoad Assign NameStore Num Assign NameStore NameLoad FunctionDef arguments args NameParam defaults body AugAssignAdd AttributeStore NameLoad attr AttributeLoad NameLoad attr For NameStore AttributeLoad NameLoad attr body Expr Call NameLoad NameLoad decorator_list For TupleStore NameStore NameStore NameLoad body If CompareEq NameLoad Str body If CompareEq AttributeLoad NameLoad attr Str body Assign NameStore Call NameLoad NameLoad AttributeLoad NameLoad attr NameLoad NameLoad Call AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Call NameLoad NameLoad Assign AttributeStore NameLoad attr Call NameLoad Expr Call AttributeLoad NameLoad attr Str Call NameLoad Str keyword NameLoad orelse If CompareIsNot Call AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr If CompareEq AttributeLoad Call AttributeLoad NameLoad attr attr Str body If UnaryOpNot NameLoad body Assign NameStore NameLoad Assign NameStore Call NameLoad NameLoad Str If CompareIsNot NameLoad NameLoad body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Str NameLoad orelse If UnaryOpNot NameLoad body Break Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr If NameLoad body If BoolOpOr BoolOpAnd CompareEq NameLoad AttributeLoad NameLoad attr CompareNotIn NameLoad TupleLoad Str Str BoolOpAnd CompareEq NameLoad AttributeLoad NameLoad attr CompareIn NameLoad TupleLoad Str Str CompareNotIn NameLoad TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore NameLoad If NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr orelse Expr Call AttributeLoad NameLoad attr NameLoad orelse If BoolOpAnd UnaryOpNot NameLoad NameLoad body For NameStore Call NameLoad Str body Expr Call NameLoad NameLoad Assign NameStore NameLoad orelse If CompareEq NameLoad Str body Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr If CompareEq NameLoad AttributeLoad NameLoad attr body If CompareEq NameLoad Str body If Call AttributeLoad NameLoad attr Str body Delete SubscriptDel AttributeLoad NameLoad attr Index Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad orelse If CompareGtE Call NameLoad NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr Num If BoolOpOr NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad orelse Expr Call NameLoad NameLoad NameLoad Assign NameStore NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad If Call AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr NameLoad If NameLoad body Assign NameStore TupleLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad If AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr NameLoad Delete NameDel orelse If CompareEq NameLoad Str body If CompareGtE Call NameLoad NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr Num If BoolOpOr NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad orelse Expr Call NameLoad NameLoad NameLoad Assign NameStore NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad If Call AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr NameLoad If NameLoad body Expr Call AttributeLoad NameLoad attr TupleLoad NameLoad orelse If CompareEq NameLoad Str body If BoolOpOr NameLoad NameLoad body If CompareGt Call NameLoad AttributeLoad NameLoad attr Num body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr If NameLoad body For NameStore Call NameLoad Str body Expr Call NameLoad NameLoad NameLoad If NameLoad body For NameStore Call NameLoad Str body Expr Call NameLoad NameLoad NameLoad For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad AttributeLoad NameLoad attr For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Assign NameStore NameStore NameStore NameStore NameLoad Delete SubscriptDel NameLoad Slice Delete SubscriptDel NameLoad Slice Delete SubscriptDel NameLoad Slice Delete NameDel For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Str keyword NameLoad If CompareIsNot NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr Str AttributeLoad NameLoad attr If NameLoad body Assign NameStore Call AttributeLoad NameLoad attr If CompareEq Call NameLoad NameLoad Num body If CompareEq SubscriptLoad NameLoad Index Num Str body TryExcept body Assign NameStore Call NameLoad SubscriptLoad NameLoad Index Num If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr Str Call NameLoad Str keyword NameLoad keyword NameLoad keyword AttributeLoad NameLoad attr orelse Expr Call AttributeLoad NameLoad attr Str Call NameLoad Str keyword NameLoad handlers ExceptHandler type NameLoad body Expr Call AttributeLoad NameLoad attr Str Call NameLoad Str keyword NameLoad keyword SubscriptLoad NameLoad Index Num If NameLoad body For NameStore Call NameLoad Str body Expr Call NameLoad NameLoad If NameLoad body For NameStore Call NameLoad Str body Expr Call NameLoad NameLoad orelse If CompareEq NameLoad AttributeLoad NameLoad attr body If CompareIn NameLoad TupleLoad Str Str body Expr Call AttributeLoad NameLoad attr NameLoad keyword Str orelse If CompareIn NameLoad TupleLoad Str Str body Expr Call AttributeLoad NameLoad attr TupleLoad NameLoad keyword NameLoad orelse If CompareEq NameLoad Str body Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Assign NameStore TupleLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad keyword NameLoad If Call AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr NameLoad If NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad If CompareGt Call NameLoad NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr Num Expr Call NameLoad NameLoad NameLoad If NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad orelse Expr Call NameLoad NameLoad NameLoad Assign NameStore NameLoad Assign NameStore NameLoad orelse If BoolOpAnd CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call NameLoad NameLoad NameLoad body AugAssignAdd NameStore Num Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad AttributeLoad NameLoad attr If NameLoad body Expr Call NameLoad NameLoad If BoolOpOr NameLoad NameLoad NameLoad body Assign NameStore TupleLoad NameLoad If NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad If AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr NameLoad If BoolOpOr NameLoad NameLoad body If CompareGt Call NameLoad AttributeLoad NameLoad attr Num body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr If NameLoad body For NameStore Call NameLoad Str body Expr Call NameLoad NameLoad NameLoad If NameLoad body For NameStore Call NameLoad Str body Expr Call NameLoad NameLoad NameLoad For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad AttributeLoad NameLoad attr For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Assign NameStore NameStore NameStore NameStore NameLoad Delete SubscriptDel NameLoad Slice Delete SubscriptDel NameLoad Slice Delete SubscriptDel NameLoad Slice Delete NameDel orelse Expr Call NameLoad NameLoad NameLoad AttributeLoad NameLoad attr If CompareEq BinOpMod NameLoad Num Num body Pass If CompareIsNot NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Delete NameDel NameDel NameDel If BoolOpAnd NameLoad CompareIsNot NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Delete NameDel Expr Call AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr Call NameLoad Str BinOpSub Call AttributeLoad NameLoad attr NameLoad Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body For NameStore Call AttributeLoad NameLoad attr keyword Str body For TupleStore NameStore NameStore NameStore AttributeLoad AttributeLoad NameLoad attr attr body If BoolOpAnd CompareEq NameLoad NameLoad CompareNotIn NameLoad AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad NameLoad attr Str Call NameLoad Str keyword NameLoad keyword NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Delete SubscriptDel AttributeLoad NameLoad attr Index AttributeLoad NameLoad attr Expr Call NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Delete SubscriptDel AttributeLoad NameLoad attr Index AttributeLoad NameLoad attr Expr Call NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body For NameStore Call AttributeLoad AttributeLoad NameLoad attr attr body If CompareIn NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body While AttributeLoad NameLoad attr body Expr Call NameLoad NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign SubscriptStore AttributeLoad NameLoad attr Index AttributeLoad NameLoad attr NameLoad If AttributeLoad NameLoad attr body Expr Call AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body For NameStore Call AttributeLoad NameLoad attr body Expr Call NameLoad NameLoad NameLoad If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore ListComp NameLoad comprehension TupleStore NameStore NameStore Call NameLoad NameLoad CompareEq NameLoad SubscriptLoad NameLoad Index Num For NameStore NameLoad body Delete SubscriptDel NameLoad Index NameLoad Assign SubscriptStore AttributeLoad NameLoad attr Index AttributeLoad NameLoad attr NameLoad If AttributeLoad NameLoad attr body Expr Call AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr decorator_list Expr Str FunctionDef arguments args NameParam NameParam defaults vararg kwarg body Global identifier identifier Assign NameStore AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults vararg kwarg body Return Call NameLoad NameLoad Str NameLoad decorator_list Expr Str Assign NameStore Dict Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str NameLoad NameLoad NameLoad
N/A N/A 
StreamingExtensions is a plug-in to both GUI menu and command line/web service
that provides an alternative approach to big instance documents without building a DOM, to save
memory footprint.  lxml iterparse is used to parse the big instance.  ModelObjects are specialized by features
for efficiency and to avoid dependency on an underlying DOM.

(Note that this module is based on a parser target, an alternate based on iterparse is under examples/plugin.)

(c) Copyright 2013 Mark V Systems Limited, All rights reserved.

Calls these plug-in classes:
   Streaming.BlockingPlugin(modelXbrl):  returns name of plug in blocking streaming if it is being blocked, else None
   Streaming.Start(modelXbrl): notifies that streaming is starting for modelXbrl; simulated modelDocument is established
   Streaming.ValidateFacts(modelXbrl, modelFacts) modelFacts are available for streaming processing
   Streaming.Finish(modelXbrl): notifies that streaming is finished
 N/A io os time sys re gc decimal Decimal InvalidOperation lxml etree arelle XbrlConst XmlUtil XmlValidate ValidateXbrlDimensions arelle.ModelDocument ModelDocument Type arelle.ModelObjectFactory parser arelle.ModelObject ModelObject arelle.ModelInstanceObject ModelFact arelle.PluginManager pluginClassMethods arelle.Validate Validate arelle.HashUtil md5hash Md5Sum N/A _streamingExtensionsCheck True N/A _streamingExtensionsValidate False N/A _streamingValidatePlugin False NotInstanceDocumentException N/A Exception N/A __init__ N/A N/A self N/A N/A N/A N/A N/A precedingProcessingInstruction N/A N/A elt target N/A N/A N/A pi N/A N/A elt getprevious N/A N/A pi None N/A N/A N/A N/A isinstance pi N/A etree _ProcessingInstruction N/A N/A pi target target N/A N/A pi N/A pi N/A N/A pi getprevious N/A None N/A childProcessingInstruction N/A N/A elt target reversed N/A False N/A N/A pi N/A N/A elt iterchildren reversed reversed N/A N/A N/A isinstance pi N/A etree _ProcessingInstruction N/A N/A N/A N/A pi target target N/A N/A pi N/A N/A N/A None N/A precedingComment N/A N/A elt N/A N/A N/A c N/A N/A elt getprevious N/A comment N/A N/A c None N/A N/A N/A N/A isinstance c N/A etree _Comment N/A c text N/A N/A comment N/A N/A N/A c text comment N/A c N/A N/A c getprevious N/A N/A comment None N/A streamingExtensionsLoader N/A N/A modelXbrl mappedUri filepath N/A args kwargs N/A N/A N/A _streamingExtensionsCheck N/A N/A None N/A N/A modelXbrl _streamingExtensionValidated False logSyntaxErrors N/A N/A parsercontext N/A N/A N/A error N/A parsercontext error_log N/A N/A N/A N/A modelXbrl error xmlSchema:syntax N/A _ %(error)s, %(fileName)s, line %(line)s, column %(column)s, %(sourceAction)s source element modelObject modelXbrl fileName N/A N/A N/A os path basename filepath error N/A error message line N/A error line column N/A error column sourceAction streaming N/A N/A N/A _file N/A N/A N/A modelXbrl fileSource file filepath binary True N/A startedAt N/A N/A time time N/A N/A N/A modelXbrl profileActivity N/A  this seems twice as slow as iterparse
    class instInfoTarget():
        def __init__(self, element_factory=None, parser=None):
            self.newTree = True
            self.streamingAspects = None
            self.foundInstance = False
            self.creationSoftwareComment = ''
            self.currentEltTag = "(before xbrli:xbrl)"
            self.numRootFacts = 0
        def start(self, tag, attrib, nsmap=None):
            if self.newTree:
                if tag == "{http://www.xbrl.org/2003/instance}xbrl":
                    self.foundInstance = True
                    self.newTree = False
                else: # break 
                    raise NotInstanceDocumentException()
            elif not tag.startswith("{http://www.xbrl.org/"):
                self.numRootFacts += 1
                if self.numRootFacts % 1000 == 0:
                    modelXbrl.profileActivity("... streaming tree check", minTimeToShow=20.0)
            self.currentEltTag = tag
        def end(self, tag):
            pass
        def data(self, data):
            pass
        def comment(self, text):
            if not self.foundInstance: # accumulate comments before xbrli:xbrl
                self.creationSoftwareComment += ('
' if self.creationSoftwareComment else '') + text
            elif not self.creationSoftwareComment:
                self.creationSoftwareComment = text # or first comment after xbrli:xbrl
        def pi(self, target, data):
            if target == "xbrl-streamable-instance":
                if self.currentEltTag == "{http://www.xbrl.org/2003/instance}xbrl":
                    self.streamingAspects = dict(etree.PI(target,data).attrib.copy()) # dereference target results
                else:
                    modelXbrl.error("streamingExtensions:headerMisplaced",
                            _("Header is misplaced: %(target)s, must follow xbrli:xbrl element but was found at %(element)s"),
                            modelObject=modelXbrl, target=target, element=self.currentEltTag)
        def close(self):
            if not self.creationSoftwareComment:
                self.creationSoftwareComment = None
            return True
    instInfo = instInfoTarget()
    infoParser = etree.XMLParser(recover=True, huge_tree=True, target=instInfo)
    try:
        etree.parse(_file, parser=infoParser, base_url=filepath)
    except NotInstanceDocumentException:
        pass
     N/A foundErrors False N/A foundInstance False N/A streamingAspects None N/A creationSoftwareComment None N/A instInfoNumRootFacts 0 N/A numElts 0 N/A elt None N/A instInfoContext N/A N/A etree iterparse _file events N/A start end huge_tree True N/A N/A N/A N/A event elt instInfoContext N/A N/A N/A event start N/A N/A N/A N/A N/A elt getparent None N/A N/A N/A N/A N/A N/A elt getparent tag {http://www.xbrl.org/2003/instance}xbrl N/A N/A N/A foundInstance N/A N/A foundInstance True N/A pi N/A precedingProcessingInstruction elt xbrl-streamable-instance N/A N/A pi None N/A N/A N/A N/A streamingAspects N/A dict N/A N/A N/A pi attrib copy N/A N/A creationSoftwareComment None N/A N/A creationSoftwareComment N/A precedingComment elt N/A N/A N/A N/A N/A elt tag startswith {http://www.xbrl.org/ N/A N/A instInfoNumRootFacts 1 N/A N/A N/A instInfoNumRootFacts 1000 0 N/A N/A N/A N/A modelXbrl profileActivity ... streaming tree check minTimeToShow 20.0 N/A N/A N/A foundInstance N/A N/A N/A N/A N/A N/A elt tag {http://www.xbrl.org/2003/instance}xbrl N/A N/A creationSoftwareComment N/A precedingComment elt N/A N/A N/A precedingProcessingInstruction elt xbrl-streamable-instance None N/A N/A N/A N/A modelXbrl error streamingExtensions:headerMisplaced N/A _ Header is misplaced: %(error)s, must follow xbrli:xbrl element modelObject elt N/A N/A N/A event end N/A N/A N/A N/A elt clear N/A numElts 1 N/A N/A N/A N/A numElts 1000 0 N/A N/A N/A elt getparent None N/A N/A N/A N/A N/A N/A elt getprevious None N/A N/A N/A elt getparent None N/A N/A N/A N/A N/A elt getparent N/A 0 N/A N/A N/A N/A etree XMLSyntaxError N/A err N/A N/A N/A N/A modelXbrl error xmlSchema:syntax N/A _ Unrecoverable error: %(error)s error err N/A N/A N/A _file close N/A err N/A N/A N/A _file seek 0 N/A io SEEK_SET N/A N/A N/A foundInstance N/A streamingAspects None N/A N/A elt N/A N/A N/A _file close N/A None N/A N/A N/A modelXbrl profileStat N/A _ streaming tree check N/A N/A N/A time time startedAt N/A startedAt N/A N/A time time N/A N/A N/A version N/A Decimal N/A N/A streamingAspects get version N/A N/A N/A int version 1 N/A N/A N/A N/A modelXbrl error streamingExtensions:unsupportedVersion N/A _ Streaming version %(version)s, major version number must be 1 modelObject elt version version N/A foundErrors True N/A N/A N/A N/A InvalidOperation OverflowError N/A N/A N/A N/A modelXbrl error streamingExtensions:versionError N/A _ Version %(version)s, number must be 1.n modelObject elt version N/A N/A streamingAspects get version (none) N/A foundErrors True N/A bufAspect N/A contextBuffer unitBuffer footnoteBuffer N/A N/A N/A N/A bufLimit N/A Decimal N/A N/A streamingAspects get bufAspect INF N/A N/A N/A bufLimit 1 N/A N/A N/A bufLimit is_finite N/A N/A bufLimit 1 0 N/A N/A InvalidOperation N/A N/A N/A bufAspect contextBuffer N/A N/A contextBufferLimit bufLimit N/A N/A N/A bufAspect unitBuffer N/A N/A unitBufferLimit bufLimit N/A N/A N/A bufAspect footnoteBuffer N/A N/A footnoteBufferLimit bufLimit N/A N/A N/A InvalidOperation N/A N/A N/A N/A modelXbrl error streamingExtensions:valueError N/A _ Streaming %(attrib)s %(value)s, number must be a positive integer or INF modelObject elt attrib bufAspect value N/A N/A streamingAspects get bufAspect N/A foundErrors True N/A _streamingExtensionsValidate N/A N/A incompatibleValidations N/A N/A _validateDisclosureSystem N/A N/A modelXbrl modelManager validateDisclosureSystem N/A _disclosureSystem N/A N/A modelXbrl modelManager disclosureSystem N/A N/A _validateDisclosureSystem N/A N/A _disclosureSystem validationType EFM N/A N/A N/A N/A incompatibleValidations append EFM N/A N/A _validateDisclosureSystem N/A N/A _disclosureSystem validationType GFM N/A N/A N/A N/A incompatibleValidations append GFM N/A N/A _validateDisclosureSystem N/A N/A _disclosureSystem validationType HMRC N/A N/A N/A N/A incompatibleValidations append HMRC N/A N/A N/A modelXbrl modelManager validateCalcLB N/A N/A N/A N/A incompatibleValidations append calculation LB N/A incompatibleValidations N/A N/A N/A N/A modelXbrl error streamingExtensions:incompatibleValidation N/A _ Streaming instance validation does not support %(incompatibleValidations)s validation modelObject modelXbrl incompatibleValidations N/A N/A ,  join incompatibleValidations N/A foundErrors True N/A N/A instInfoContext error_log N/A N/A foundErrors True N/A N/A logSyntaxErrors instInfoContext N/A instInfoContext N/A pluginMethod N/A pluginClassMethods Streaming.BlockStreaming N/A N/A _blockingPluginName N/A pluginMethod modelXbrl N/A _blockingPluginName N/A N/A N/A N/A modelXbrl error streamingExtensions:incompatiblePlugIn N/A _ Streaming instance not supported by plugin %(blockingPlugin)s modelObject modelXbrl blockingPlugin _blockingPluginName N/A foundErrors True N/A foundErrors N/A N/A N/A N/A _file close N/A None N/A _encoding N/A N/A XmlUtil encoding N/A N/A _file read 512 N/A N/A N/A _file seek 0 N/A io SEEK_SET N/A _streamingExtensionsValidate N/A N/A validator N/A Validate modelXbrl N/A instValidator N/A validator instValidator N/A contextBuffer N/A N/A contextsToDrop N/A N/A unitBuffer N/A N/A unitsToDrop N/A N/A footnoteBuffer N/A N/A footnoteLinksToDrop N/A N/A _streamingFactsPlugin N/A any N/A True N/A pluginMethod N/A pluginClassMethods Streaming.Facts N/A _streamingValidateFactsPlugin N/A _streamingExtensionsValidate N/A any N/A True N/A pluginMethod N/A pluginClassMethods Streaming.ValidateFacts N/A  this is very much slower than iterparse
    class modelLoaderTarget():
        def __init__(self, element_factory=None, parser=None):
            self.newTree = True
            self.currentMdlObj = None
            self.beforeInstanceStream = True
            self.beforeStartStreamingPlugin = True
            self.numRootFacts = 1
            modelXbrl.makeelementParentModelObject = None
            modelXbrl.isStreamingMode = True
            self.factsCheckVersion = None
            self.factsCheckMd5s = Md5Sum()
        def start(self, tag, attrib, nsmap=None):
            modelXbrl.makeelementParentModelObject = self.currentMdlObj # pass parent to makeelement for ModelObjectFactory
            mdlObj = _parser.makeelement(tag, attrib=attrib, nsmap=nsmap)
            mdlObj.sourceline = 1
            if self.newTree:
                self.newTree = False
                self.currentMdlObj = mdlObj
                modelDocument = ModelDocument(modelXbrl, Type.INSTANCE, mappedUri, filepath, mdlObj.getroottree())
                modelXbrl.modelDocument = modelDocument # needed for incremental validation
                mdlObj.init(modelDocument)
                modelDocument.parser = _parser # needed for XmlUtil addChild's makeelement 
                modelDocument.parserLookupName = _parserLookupName
                modelDocument.parserLookupClass = _parserLookupClass
                modelDocument.xmlRootElement = mdlObj
                modelDocument.schemaLocationElements.add(mdlObj)
                modelDocument.documentEncoding = _encoding
                modelDocument._creationSoftwareComment = creationSoftwareComment
                modelXbrl.info("streamingExtensions:streaming",
                               _("Stream processing this instance."),
                               modelObject = modelDocument)
            else:
                self.currentMdlObj.append(mdlObj)
                self.currentMdlObj = mdlObj
                mdlObj._init()
                ns = mdlObj.namespaceURI
                ln = mdlObj.localName
                if (self.beforeInstanceStream and (
                    (ns == XbrlConst.link and ln not in ("schemaRef", "linkbaseRef")) or
                    (ns == XbrlConst.xbrli and ln in ("context", "unit")) or
                    (ns not in (XbrlConst.link, XbrlConst.xbrli)))):
                    self.beforeInstanceStream = False
                    if _streamingExtensionsValidate:
                        instValidator.validate(modelXbrl, modelXbrl.modelManager.formulaOptions.typedParameters())
                    else: # need default dimensions
                        ValidateXbrlDimensions.loadDimensionDefaults(modelXbrl)
                elif not self.beforeInstanceStream and self.beforeStartStreamingPlugin:
                    for pluginMethod in pluginClassMethods("Streaming.Start"):
                        pluginMethod(modelXbrl)
                    self.beforeStartStreamingPlugin = False
            return mdlObj
        def end(self, tag):
            modelDocument = modelXbrl.modelDocument
            mdlObj = self.currentMdlObj
            parentMdlObj = mdlObj.getparent()
            self.currentMdlObj = parentMdlObj
            ns = mdlObj.namespaceURI
            ln = mdlObj.localName
            if ns == XbrlConst.xbrli:
                if ln == "context":
                    if mdlObj.get("sticky"):
                        del mdlObj.attrib["sticky"]
                        XmlValidate.validate(modelXbrl, mdlObj)
                        modelDocument.contextDiscover(mdlObj)
                    else:
                        if _streamingExtensionsValidate and len(contextBuffer) >= contextBufferLimit:
                            # drop before adding as dropped may have same id as added
                            cntx = contextBuffer.pop(0)
                            if _streamingValidateFactsPlugin:
                                contextsToDrop.append(cntx)
                            else:
                                dropContext(modelXbrl, cntx)
                                del parentMdlObj[parentMdlObj.index(cntx)]
                            cntx = None
                        #>>XmlValidate.validate(modelXbrl, mdlObj)
                        #>>modelDocument.contextDiscover(mdlObj)
                        if contextBufferLimit.is_finite():
                            contextBuffer.append(mdlObj)
                    if _streamingExtensionsValidate:
                        contextsToCheck = (mdlObj,)
                        instValidator.checkContexts(contextsToCheck)
                        if modelXbrl.hasXDT:
                            instValidator.checkContextsDimensions(contextsToCheck)
                        del contextsToCheck # dereference
                elif ln == "unit":
                    if _streamingExtensionsValidate and len(unitBuffer) >= unitBufferLimit:
                        # drop before adding as dropped may have same id as added
                        unit = unitBuffer.pop(0)
                        if _streamingValidateFactsPlugin:
                            unitsToDrop.append(unit)
                        else:
                            dropUnit(modelXbrl, unit)
                            del parentMdlObj[parentMdlObj.index(unit)]
                        unit = None 
                    #>>XmlValidate.validate(modelXbrl, mdlObj)
                    #>>modelDocument.unitDiscover(mdlObj)
                    if unitBufferLimit.is_finite():
                        unitBuffer.append(mdlObj)
                    if _streamingExtensionsValidate:
                        instValidator.checkUnits( (mdlObj,) )
                elif ln == "xbrl": # end of document
                    # check remaining batched facts if any
                    if _streamingValidateFactsPlugin:
                        # plugin attempts to process batch of all root facts not yet processed (not just current one)
                        # finish any final batch of facts
                        if len(modelXbrl.facts) > 0:
                            factsToCheck = modelXbrl.facts.copy()
                            factsHaveBeenProcessed = True
                            # can block facts deletion if required data not yet available, such as numeric unit for DpmDB
                            for pluginMethod in pluginClassMethods("Streaming.ValidateFacts"):
                                if not pluginMethod(modelXbrl, factsToCheck):
                                    factsHaveBeenProcessed = False
                            if factsHaveBeenProcessed:
                                for fact in factsToCheck:
                                    dropFact(modelXbrl, fact, modelXbrl.facts)
                                    del parentMdlObj[parentMdlObj.index(fact)]
                                for cntx in contextsToDrop:
                                    dropContext(modelXbrl, cntx)
                                    del parentMdlObj[parentMdlObj.index(cntx)]
                                for unit in unitsToDrop:
                                    dropUnit(modelXbrl, unit)
                                    del parentMdlObj[parentMdlObj.index(unit)]
                                for footnoteLink in footnoteLinksToDrop:
                                    dropFootnoteLink(modelXbrl, footnoteLink)
                                    del parentMdlObj[parentMdlObj.index(footnoteLink)]
                                fact = cntx = unit = footnoteLink = None
                                del contextsToDrop[:]
                                del unitsToDrop[:]
                                del footnoteLinksToDrop[:]
                            del factsToCheck
                    # check remaining footnote refs
                    for footnoteLink in footnoteBuffer:
                        checkFootnoteHrefs(modelXbrl, footnoteLink)
                    for pluginMethod in pluginClassMethods("Streaming.Finish"):
                        pluginMethod(modelXbrl)
            elif ns == XbrlConst.link:
                if ln == "footnoteLink":
                    XmlValidate.validate(modelXbrl, mdlObj)
                    footnoteLinks = (mdlObj,)
                    modelDocument.linkbaseDiscover(footnoteLinks, inInstance=True)
                    if footnoteBufferLimit.is_finite():
                        footnoteBuffer.append(mdlObj)
                    if _streamingExtensionsValidate:
                        instValidator.checkLinks(footnoteLinks)
                        if len(footnoteBuffer) > footnoteBufferLimit:
                            # check that hrefObjects for locators were all satisfied
                                # drop before addition as dropped may have same id as added
                            footnoteLink = footnoteBuffer.pop(0)
                            checkFootnoteHrefs(modelXbrl, footnoteLink)
                            if _streamingValidateFactsPlugin:
                                footnoteLinksToDrop.append(footnoteLink)
                            else:
                                dropFootnoteLink(modelXbrl, footnoteLink)
                                del parentMdlObj[parentMdlObj.index(footnoteLink)]
                            footnoteLink = None
                    footnoteLinks = None
                elif ln in ("schemaRef", "linkbaseRef"):
                    modelDocument.discoverHref(mdlObj)
                elif not modelXbrl.skipDTS:
                    if ln in ("roleRef", "arcroleRef"):
                        modelDocument.linkbaseDiscover((mdlObj,), inInstance=True)
            elif parentMdlObj.qname == XbrlConst.qnXbrliXbrl:
                self.numRootFacts += 1
                #>>XmlValidate.validate(modelXbrl, mdlObj)
                #>>modelDocument.factDiscover(mdlObj, modelXbrl.facts)
                if self.factsCheckVersion:
                    self.factCheckFact(mdlObj)
                if _streamingExtensionsValidate or _streamingValidateFactsPlugin:
                    factsToCheck = (mdlObj,)  # validate current fact by itself
                    if _streamingExtensionsValidate:
                        instValidator.checkFacts(factsToCheck)
                        if modelXbrl.hasXDT:
                            instValidator.checkFactsDimensions(factsToCheck)
                    if _streamingValidateFactsPlugin:
                        # plugin attempts to process batch of all root facts not yet processed (not just current one)
                        # use batches of 1000 facts
                        if len(modelXbrl.facts) > 1000:
                            factsToCheck = modelXbrl.facts.copy()
                            factsHaveBeenProcessed = True
                            # can block facts deletion if required data not yet available, such as numeric unit for DpmDB
                            for pluginMethod in pluginClassMethods("Streaming.ValidateFacts"):
                                if not pluginMethod(modelXbrl, factsToCheck):
                                    factsHaveBeenProcessed = False
                            if factsHaveBeenProcessed:
                                for fact in factsToCheck:
                                    dropFact(modelXbrl, fact, modelXbrl.facts)
                                    del parentMdlObj[parentMdlObj.index(fact)]
                                for cntx in contextsToDrop:
                                    dropContext(modelXbrl, cntx)
                                    del parentMdlObj[parentMdlObj.index(cntx)]
                                for unit in unitsToDrop:
                                    dropUnit(modelXbrl, unit)
                                    del parentMdlObj[parentMdlObj.index(unit)]
                                for footnoteLink in footnoteLinksToDrop:
                                    dropFootnoteLink(modelXbrl, footnoteLink)
                                    del parentMdlObj[parentMdlObj.index(footnoteLink)]
                                fact = cntx = unit = footnoteLink = None
                                del contextsToDrop[:]
                                del unitsToDrop[:]
                                del footnoteLinksToDrop[:]
                            del factsToCheck # dereference fact or batch of facts
                    else:
                        dropFact(modelXbrl, mdlObj, modelXbrl.facts) # single fact has been processed
                        del parentMdlObj[parentMdlObj.index(mdlObj)]
                if self.numRootFacts % 1000 == 0:
                    pass
                    #modelXbrl.profileActivity("... streaming fact {0} of {1} {2:.2f}%".format(self.numRootFacts, instInfoNumRootFacts, 
                    #                                                                          100.0 * self.numRootFacts / instInfoNumRootFacts), 
                    #                          minTimeToShow=20.0)
                    gc.collect()
                    sys.stdout.write ("
At fact {} of {} mem {}".format(self.numRootFacts, instInfoNumRootFacts, modelXbrl.modelManager.cntlr.memoryUsed))
            return mdlObj
        def data(self, data):
            self.currentMdlObj.text = data
        def comment(self, text):
            pass
        def pi(self, target, data):
            if target == "xbrl-facts-check":
                _match = re.search("([\w-]+)=["']([^"']+)["']", data)
                if _match:
                    _matchGroups = _match.groups()
                    if len(_matchGroups) == 2:
                        if _matchGroups[0] == "version":
                            self.factsCheckVersion = _matchGroups[1]
                        elif _matchGroups[0] == "sum-of-fact-md5s":
                            try:
                                expectedMd5 = Md5Sum(_matchGroups[1])
                                if self.factsCheckMd5s != expectedMd5:
                                    modelXbrl.warning("streamingExtensions:xbrlFactsCheckWarning",
                                            _("XBRL facts sum of md5s expected %(expectedMd5)s not matched to actual sum %(actualMd5Sum)s"),
                                            modelObject=modelXbrl, expectedMd5=expectedMd5, actualMd5Sum=self.factsCheckMd5s)
                                else:
                                    modelXbrl.info("info",
                                            _("Successful XBRL facts sum of md5s."),
                                            modelObject=modelXbrl)
                            except ValueError:
                                modelXbrl.error("streamingExtensions:xbrlFactsCheckError",
                                        _("Invalid sum-of-md5s %(sumOfMd5)s"),
                                        modelObject=modelXbrl, sumOfMd5=_matchGroups[1])
        def close(self):
            del modelXbrl.makeelementParentModelObject
            return None
        
        def factCheckFact(self, fact):
            self.factsCheckMd5s += fact.md5sum
            for _tupleFact in fact.modelTupleFacts:
                self.factCheckFact(_tupleFact)
        
    _parser, _parserLookupName, _parserLookupClass = parser(modelXbrl, filepath, target=modelLoaderTarget())
    etree.parse(_file, parser=_parser, base_url=filepath)
    logSyntaxErrors(_parser)
     N/A streamingParserContext N/A N/A etree iterparse _file events N/A start end huge_tree True arelle.ModelObjectFactory setParserElementClassLookup N/A N/A modelXbrl isStreamingMode True N/A N/A _parser _parserLookupName _parserLookupClass N/A setParserElementClassLookup streamingParserContext modelXbrl N/A foundInstance False N/A beforeInstanceStream beforeStartStreamingPlugin True N/A numRootFacts 0 N/A factsCheckVersion None factCheckFact N/A N/A fact N/A N/A N/A N/A modelDocument _factsCheckMd5s N/A fact md5sum N/A _tupleFact N/A fact modelTupleFacts N/A N/A N/A factCheckFact _tupleFact N/A N/A N/A event mdlObj streamingParserContext N/A N/A N/A event start N/A N/A N/A N/A mdlObj tag {http://www.xbrl.org/2003/instance}xbrl N/A N/A modelDocument N/A ModelDocument modelXbrl N/A Type INSTANCE mappedUri filepath N/A N/A mdlObj getroottree N/A N/A modelXbrl modelDocument modelDocument N/A N/A N/A mdlObj init modelDocument N/A N/A modelDocument parser _parser N/A N/A modelDocument parserLookupName _parserLookupName N/A N/A modelDocument parserLookupClass _parserLookupClass N/A N/A modelDocument xmlRootElement mdlObj N/A N/A N/A N/A modelDocument schemaLocationElements add mdlObj N/A N/A modelDocument documentEncoding _encoding N/A N/A modelDocument _creationSoftwareComment N/A precedingComment mdlObj N/A N/A modelDocument _factsCheckMd5s N/A Md5Sum N/A N/A N/A modelXbrl info streamingExtensions:streaming N/A _ Stream processing this instance. modelObject modelDocument N/A N/A N/A N/A N/A mdlObj getparent None N/A N/A N/A N/A mdlObj _init N/A N/A N/A N/A N/A mdlObj getparent tag {http://www.xbrl.org/2003/instance}xbrl N/A N/A N/A foundInstance N/A N/A foundInstance True N/A pi N/A precedingProcessingInstruction mdlObj xbrl-facts-check N/A N/A pi None N/A N/A factsCheckVersion N/A N/A N/A pi attrib get version None N/A N/A N/A foundInstance N/A N/A N/A ns N/A N/A mdlObj qname namespaceURI N/A ln N/A N/A mdlObj qname localName N/A beforeInstanceStream N/A N/A N/A N/A N/A ns N/A XbrlConst link N/A ln N/A schemaRef linkbaseRef N/A N/A ns N/A XbrlConst xbrli N/A ln N/A context unit N/A ns N/A N/A XbrlConst link N/A XbrlConst xbrli N/A N/A beforeInstanceStream False N/A _streamingExtensionsValidate N/A N/A N/A N/A instValidator validate modelXbrl N/A N/A N/A N/A modelXbrl modelManager formulaOptions typedParameters N/A N/A N/A N/A ValidateXbrlDimensions loadDimensionDefaults modelXbrl N/A N/A N/A N/A beforeInstanceStream beforeStartStreamingPlugin N/A N/A pluginMethod N/A pluginClassMethods Streaming.Start N/A N/A N/A pluginMethod modelXbrl N/A beforeStartStreamingPlugin False N/A N/A N/A event end N/A N/A parentMdlObj N/A N/A mdlObj getparent N/A ns N/A mdlObj namespaceURI N/A ln N/A mdlObj localName N/A N/A ns N/A XbrlConst xbrli N/A N/A N/A ln context N/A N/A N/A N/A mdlObj get sticky N/A N/A N/A N/A mdlObj attrib N/A sticky N/A N/A N/A XmlValidate validate modelXbrl mdlObj N/A N/A N/A modelDocument contextDiscover mdlObj N/A N/A N/A N/A len contextBuffer contextBufferLimit N/A N/A cntx N/A N/A contextBuffer pop 0 N/A N/A _streamingFactsPlugin _streamingValidateFactsPlugin N/A N/A N/A N/A contextsToDrop append cntx N/A N/A N/A dropContext modelXbrl cntx N/A cntx None N/A N/A N/A XmlValidate validate modelXbrl mdlObj N/A N/A N/A modelDocument contextDiscover mdlObj N/A N/A N/A contextBufferLimit is_finite N/A N/A N/A N/A contextBuffer append mdlObj N/A _streamingExtensionsValidate N/A N/A contextsToCheck N/A mdlObj N/A N/A N/A instValidator checkContexts contextsToCheck N/A N/A modelXbrl hasXDT N/A N/A N/A N/A instValidator checkContextsDimensions contextsToCheck N/A contextsToCheck N/A N/A N/A ln unit N/A N/A N/A N/A len unitBuffer unitBufferLimit N/A N/A unit N/A N/A unitBuffer pop 0 N/A N/A _streamingFactsPlugin _streamingValidateFactsPlugin N/A N/A N/A N/A unitsToDrop append unit N/A N/A N/A dropUnit modelXbrl unit N/A unit None N/A N/A N/A XmlValidate validate modelXbrl mdlObj N/A N/A N/A modelDocument unitDiscover mdlObj N/A N/A N/A unitBufferLimit is_finite N/A N/A N/A N/A unitBuffer append mdlObj N/A _streamingExtensionsValidate N/A N/A N/A N/A instValidator checkUnits N/A mdlObj N/A N/A N/A ln xbrl N/A N/A N/A _streamingFactsPlugin _streamingValidateFactsPlugin N/A N/A N/A N/A len N/A modelXbrl facts 0 N/A N/A factsToCheck N/A N/A N/A modelXbrl facts copy N/A _streamingValidateFactsPlugin N/A N/A pluginMethod N/A pluginClassMethods Streaming.ValidateFacts N/A N/A N/A pluginMethod instValidator factsToCheck N/A _streamingFactsPlugin N/A N/A pluginMethod N/A pluginClassMethods Streaming.Facts N/A N/A N/A pluginMethod modelXbrl factsToCheck N/A fact factsToCheck N/A N/A N/A dropFact modelXbrl fact N/A modelXbrl facts N/A cntx contextsToDrop N/A N/A N/A dropContext modelXbrl cntx N/A unit unitsToDrop N/A N/A N/A dropUnit modelXbrl unit N/A footnoteLink footnoteLinksToDrop N/A N/A N/A dropFootnoteLink modelXbrl footnoteLink N/A fact cntx unit footnoteLink None N/A N/A contextsToDrop N/A N/A N/A unitsToDrop N/A N/A N/A footnoteLinksToDrop N/A N/A factsToCheck N/A footnoteLink footnoteBuffer N/A N/A N/A checkFootnoteHrefs modelXbrl footnoteLink N/A pi N/A childProcessingInstruction mdlObj xbrl-facts-check reversed True N/A N/A pi None N/A N/A _match N/A N/A re search ([\w-]+)=["']([^"']+)["'] N/A pi text N/A _match N/A N/A _matchGroups N/A N/A _match groups N/A N/A N/A len _matchGroups 2 N/A N/A N/A N/A _matchGroups N/A 0 sum-of-fact-md5s N/A N/A N/A N/A expectedMd5 N/A Md5Sum N/A _matchGroups N/A 1 N/A N/A N/A modelDocument _factsCheckMd5s expectedMd5 N/A N/A N/A N/A modelXbrl warning streamingExtensions:xbrlFactsCheckWarning N/A _ XBRL facts sum of md5s expected %(expectedMd5)s not matched to actual sum %(actualMd5Sum)s modelObject modelXbrl expectedMd5 expectedMd5 actualMd5Sum N/A modelDocument _factsCheckMd5s N/A N/A N/A N/A modelXbrl info info N/A _ Successful XBRL facts sum of md5s. modelObject modelXbrl N/A N/A N/A ValueError N/A N/A N/A N/A modelXbrl error streamingExtensions:xbrlFactsCheckError N/A _ Invalid sum-of-md5s %(sumOfMd5)s modelObject modelXbrl sumOfMd5 N/A _matchGroups N/A 1 N/A _streamingValidateFactsPlugin N/A N/A pluginMethod N/A pluginClassMethods Streaming.ValidateFinish N/A N/A N/A pluginMethod instValidator N/A _streamingFactsPlugin N/A N/A pluginMethod N/A pluginClassMethods Streaming.Finish N/A N/A N/A pluginMethod modelXbrl N/A N/A N/A ns N/A XbrlConst link N/A N/A N/A ln N/A schemaRef linkbaseRef N/A N/A N/A N/A modelDocument discoverHref mdlObj urlRewritePluginClass ModelDocument.InstanceSchemaRefRewriter N/A N/A N/A ln N/A roleRef arcroleRef N/A N/A N/A N/A modelDocument linkbaseDiscover N/A mdlObj inInstance True N/A N/A N/A ln footnoteLink N/A N/A N/A N/A XmlValidate validate modelXbrl mdlObj N/A footnoteLinks N/A mdlObj N/A N/A N/A modelDocument linkbaseDiscover footnoteLinks inInstance True N/A N/A N/A footnoteBufferLimit is_finite N/A N/A N/A N/A footnoteBuffer append mdlObj N/A _streamingExtensionsValidate N/A N/A N/A N/A instValidator checkLinks footnoteLinks N/A N/A N/A len footnoteBuffer footnoteBufferLimit N/A N/A footnoteLink N/A N/A footnoteBuffer pop 0 N/A N/A checkFootnoteHrefs modelXbrl footnoteLink N/A _streamingValidateFactsPlugin N/A N/A N/A N/A footnoteLinksToDrop append footnoteLink N/A N/A N/A dropFootnoteLink modelXbrl footnoteLink N/A footnoteLink None N/A footnoteLinks None N/A N/A N/A N/A N/A parentMdlObj qname N/A XbrlConst qnXbrliXbrl N/A isinstance mdlObj ModelFact N/A N/A numRootFacts 1 N/A N/A N/A XmlValidate validate modelXbrl mdlObj N/A N/A N/A modelDocument factDiscover mdlObj N/A modelXbrl facts N/A factsCheckVersion N/A N/A N/A factCheckFact mdlObj N/A N/A _streamingExtensionsValidate _streamingFactsPlugin _streamingValidateFactsPlugin N/A N/A factsToCheck N/A mdlObj N/A _streamingExtensionsValidate N/A N/A N/A N/A instValidator checkFacts factsToCheck N/A N/A modelXbrl hasXDT N/A N/A N/A N/A instValidator checkFactsDimensions factsToCheck N/A N/A _streamingFactsPlugin _streamingValidateFactsPlugin N/A N/A N/A N/A len N/A modelXbrl facts 1000 N/A N/A factsToCheck N/A N/A N/A modelXbrl facts copy N/A _streamingValidateFactsPlugin N/A N/A pluginMethod N/A pluginClassMethods Streaming.ValidateFacts N/A N/A N/A pluginMethod instValidator factsToCheck N/A _streamingFactsPlugin N/A N/A pluginMethod N/A pluginClassMethods Streaming.Facts N/A N/A N/A pluginMethod modelXbrl factsToCheck N/A fact factsToCheck N/A N/A N/A dropFact modelXbrl fact N/A modelXbrl facts N/A cntx contextsToDrop N/A N/A N/A dropContext modelXbrl cntx N/A unit unitsToDrop N/A N/A N/A dropUnit modelXbrl unit N/A footnoteLink footnoteLinksToDrop N/A N/A N/A dropFootnoteLink modelXbrl footnoteLink N/A fact cntx unit footnoteLink None N/A N/A contextsToDrop N/A N/A N/A unitsToDrop N/A N/A N/A footnoteLinksToDrop N/A N/A factsToCheck N/A N/A N/A dropFact modelXbrl mdlObj N/A modelXbrl facts N/A N/A N/A numRootFacts 1000 0 N/A N/A N/A N/A mdlObj None N/A N/A N/A N/A mdlObj clear N/A _parser _parserLookupName _parserLookupClass N/A N/A _streamingExtensionsValidate N/A validator None N/A N/A N/A N/A _file close N/A instValidator N/A N/A N/A validator close N/A N/A modelXbrl _streamingExtensionValidated True N/A N/A N/A modelXbrl profileStat N/A _ streaming complete N/A N/A N/A time time startedAt N/A N/A modelXbrl modelDocument N/A checkFootnoteHrefs N/A N/A modelXbrl footnoteLink N/A N/A N/A locElt N/A N/A footnoteLink iterchildren tag {http://www.xbrl.org/2003/linkbase}loc N/A N/A N/A hrefElt _doc _id N/A N/A footnoteLink modelDocument hrefObjects N/A N/A N/A N/A locElt hrefElt N/A id N/A N/A footnoteLink modelDocument idObjects N/A N/A N/A N/A modelXbrl error streamingExtensions:footnoteId N/A _ Footnote id %(id)s not matched to fact in buffered region modelObject footnoteLink id id N/A dropContext N/A N/A modelXbrl cntx N/A N/A N/A N/A N/A modelXbrl contexts N/A N/A cntx id N/A N/A dropObject modelXbrl cntx N/A dropUnit N/A N/A modelXbrl unit N/A N/A N/A N/A N/A modelXbrl units N/A N/A unit id N/A N/A dropObject modelXbrl unit N/A dropFootnoteLink N/A N/A modelXbrl footnoteLink N/A N/A N/A baseSet N/A N/A N/A modelXbrl baseSets values N/A N/A N/A footnoteLink baseSet N/A N/A N/A N/A baseSet remove footnoteLink N/A N/A dropObject modelXbrl footnoteLink N/A dropFact N/A N/A modelXbrl fact facts N/A N/A N/A N/A fact modelTupleFacts N/A N/A N/A dropFact modelXbrl N/A N/A fact modelTupleFacts N/A 0 N/A fact modelTupleFacts N/A N/A N/A N/A modelXbrl factsInInstance discard fact N/A N/A N/A facts remove fact N/A N/A N/A modelXbrl modelObjects N/A N/A fact objectIndex None N/A N/A fact id N/A N/A N/A N/A N/A N/A fact modelDocument idObjects pop N/A fact id None N/A N/A N/A fact clear N/A dropObject N/A N/A modelXbrl mdlObj N/A N/A N/A childObj N/A N/A mdlObj iterchildren N/A N/A N/A dropObject modelXbrl childObj N/A N/A N/A mdlObj qname N/A XbrlConst qnLinkLoc N/A N/A hrefs N/A N/A mdlObj modelDocument hrefObjects N/A removedHrefs N/A i N/A N/A i hrefObj N/A enumerate hrefs N/A mdlObj N/A hrefObj N/A 0 N/A i removedHrefs N/A N/A N/A hrefs N/A i N/A N/A N/A modelXbrl modelObjects N/A N/A mdlObj objectIndex None N/A N/A mdlObj id N/A N/A N/A N/A N/A N/A mdlObj modelDocument idObjects pop N/A mdlObj id None N/A N/A N/A mdlObj clear N/A N/A 
def streamingOptionsExtender(parser):
    parser.add_option("--check-streaming", 
                      action="store_true", 
                      dest="check_streaming", 
                      help=_('Check streamability of instance document."'))
 streamingExtensionsSetup N/A N/A cntlr options N/A args kwargs N/A N/A _streamingExtensionsCheck _streamingExtensionsValidate N/A _streamingExtensionsValidate N/A options validate N/A streamingExtensionsIsValidated N/A N/A modelXbrl N/A args kwargs N/A N/A N/A getattr modelXbrl _streamingExtensionValidated False N/A N/A 
   Do not use _( ) in pluginInfo itself (it is applied later, after loading
 N/A __pluginInfo__ N/A name version description license author copyright CntlrCmdLine.Utility.Run ModelDocument.PullLoader ModelDocument.IsValidated Streaming Extensions Loader 0.9 This plug-in loads big XBRL instances without building a DOM in memory.  lxml iterparse parses XBRL directly into an object model without a DOM.   Apache-2 Mark V Systems Limited (c) Copyright 2014 Mark V Systems Limited, All rights reserved. streamingExtensionsSetup streamingExtensionsLoader streamingExtensionsIsValidated