In a standard definition, the controller receives input and initiates a response by making calls on model objects. A controller accepts input from the user and instructs the model and viewers to perform actions based on that input.

Arelle has these controllers: a superclass for the controllers

CntlrCmdLine.pyw: a bare-bones controller for command line operation.  The minimal coding of this module can be used to understand the most basic API of operations that a user can request, such as to load, validate, compare, and save basic extracted data.

CntlrMainWin.pyw: a GUI controller for mouse-and-menu operation.  This implementation provides the basics for background operation of long-running processes (such as loading and validating) and GUI-thread interaction.  The GUI uses only graphic libraries distributed with the standard Python distribution (tkinter), so that it is fully compatible and consistent on all of the Python platforms.   Some graphics operations may involve more coding than fee-licensed products, but can work everywhere and for everyone.  implementation is lower priority than local GUI operation.  The current plan is to reimplement from scratch the main GUI features, but operating from remote web browsers, using an on demand (AJAX-style of) interoperation.  This would have the user interaction patterned on prior Mark V tools, but be kind and gentile on the amount of data transferred remotely to the browser and snappy (as possible) on response times.


6 Responses to Architecture, Controller

  1. charly says:


    In the options GUI and command line I do not see how I can create or modify instances or taxonomies. Are these actions referred to somewhere?

    If I work locally without internet connection, do I have any way to use URI map?

    When I validate an instance that contains formulas, I do not see the result of the evaluation of the assertions, Do I have to activate any option to see the result?

    • admin says:

      1) creating or modifying instances or taxonomies: the Arelle user community has preferred to keep the development focus on things not provided by other solutions, they feel there are many other instance and taxonomy creator/editor tools. Anyway it’s in the wish list, for a rainy day, at a low priority.

      However for table linkbases, a table of predefined axis rules can be used to enter instance data (and thus function as an instance editor or in some cases instance creator). (… arelle has the internal functionality needed to construct editors and creators.)

      2) Without internet connection, you can “work offline” and pre-load the Arelle web cache. In the GUI you can find the cache by tools->internet->manage cache.

      In addition to the cache, internet files can be mapped to different local disk locations by the mapping file in arelle’s installed directory/config/mappings.xml. This file can remap web locations to local files or to contents inside zip files on the local disk.

      3) formula assertion results that use messages should be visible in the logger output. If there are no messages, then it is necessary to select the formula option assertion result counts. In the GUI, the formula options are under Tools->formula->parameters. Some are quite verbose and only for debugging. You can also select which formula(s) or assertion(s) to run by their ID(s). The formula options of the GUI dialog are also available from the command line and web service interfaces.

      • charly says:

        Thank you for your quick response

        I can already see the result of the evaluation of the formulas. Perfect!

        Can I get the variables involved in each evaluation?

        • admin says:

          The options under formula->parameters->variables trace will help. I found it most helpful in debugging (small fact sets), to use filter winnowing (because it shows what facts are bound to each variable, and which remain bound to that variable as each filter of the variable completes within the variable set evaluation. But it can be a lot of output. And it can be confusing because some filters cache the results so they only appear to have run once and share their ‘winnowed’ results between different variable set evaluations.

  2. Can it be extended for creating instance document- the data could be either extracted from the excel or keyed in directly ,

    • admin says:

      Yes, using the table linkbase, forms can be created that can be used to key in new instance documents. Table linkbase is supported in 2010 Eurofiling syntax, 2011 “Montreal” syntax, and the soon-to-release 2012 “Oxford” syntax.

Leave a Reply

Your email address will not be published. Required fields are marked *