MathBench

Technologies and development

mathbench-icon

Trivia

The development takes place on Sourceforge at this place.

The documentation is accessible at this address.

GUI

MathBench's GUI is based on wxPython and intensively uses its wx.py library.

This makes it portable accross many platforms (Linux/MacOSX/Windows) and gives us a reasonable freedom concerning the licensing of the project.

Plugin Creation

As soon as a plugin is loaded it can access all the classes and objects of MathBench and by leveraging the flexibility of Python, it can modify nearly anthing in the app.

However a few facilities are provided to ease plugins' development:

  • A static method makes it possible to add a new instrution to be executed at shell start-up:

    from mathbench.lab.notebook import LabBook
    
    # here some code and the plugin class definition
    # ...
      def activate(self)
        """
        Plugin activation method
        """
        # ...
        LabBook.initShellSessionAppend("import mypreferedlib as mpl #< load my prefered library")
    
  • Another static method makes it possible to add a new search engine that will be used by the internal documentation system as soon as the user makes a query (results from search engines provided by all the plugins are then agregated in a html page filled with links)

    from mathbench.basement.librarian import LibrarianSingleton
    
    # here some code and the plugin class definition
    # ...
    
      def activate(self)
        """
        Plugin activation method
        """
        # ...
        LibrarianSingleton.register(my_search_method,"my_plugin_name")
    

Hint

MathBench's plugin system is built on Yapsy which is a lightweight and quite flexible plugin framework.