Jump to content
  • Debugging IronPython Scripts in Spotfire®


    Debugging scripts is an important task. Here are some of the techniques to get some basic text output from your scripts.

    Introduction

    Debugging scripts is an important task. Here are some of the techniques to get some basic text output from your scripts.

    Print statement

    Using print is probably one of the easiest ways to debug your Python script in Spotfire. However, its limited in its use since Spotfire does not have a standard output where it could print.

    In Spotfire, it's possible to run a script directly from where you Create/Edit Scripts. In this case, the print output is shown in the Output window.

    converted-file.png.926d970297c2929b6771f3cdc361778d.png

    In the Analyst client, If you enable Log Level: TRACE In the "Support Diagnostics and Logging" all printing will be written directly into the Analyst debugging logs.

    converted-file.png.b71d3ccd17b426d3f495547c1aa8607c.png

     # Copyright © 2017. TIBCO Software Inc. Licensed under TIBCO BSD-style license.
     
     #
     # Print to the output window where you edit your script.
     # Can also be logged by enabling TRACE logging.
     #
     
     print 'Hello Debug!'
     

    Notifications in the status bar

    Another possibility is to create Information, Warning and Error Notifications showing up in the status bar of the application.

    # Copyright © 2017. TIBCO Software Inc. Licensed under TIBCO BSD-style license.
    from Spotfire.Dxp.Framework.ApplicationModel import NotificationService
    # Notification service
    notify = Application.GetService[NotificationService]()
    
    notify.AddWarningNotification("Notification title","Notification summary","Notification details");
    
    notify.AddInformationNotification("Information Title", "", "")
    
    notify.AddErrorNotification("Error Title", "", "")
     

    Writing to a property

    This is the most common method of getting text output when debugging a script.

    Create a document property, and write your debugging output to this property. Then show this property in a text area.

     # Copyright © 2017. TIBCO Software Inc. Licensed under TIBCO BSD-style license.
     
     #
     # Append information to a document property.
     #
     
     Document.Properties["DebugText"] += "Additional debugging info"
     

    A drawback of this method is that the document property will not be updated until the script has ended. This is due to the script is executed in a transaction.

    Messagebox using Forms

    WinForms graphical user interface is a component of the .NET Framework and not something supplied by Spotfire. It's not recommended to implement solutions using Forms, but sometimes it could be handy when debugging. There is no commitment that it will work in future versions of the Analyst client. Forms are not supported on the Web Player.

    # Copyright © 2017. TIBCO Software Inc. Licensed under TIBCO BSD-style license.
    
    #
    # A simple MesasgeBox using Forms
    #
    
    import clr
    clr.AddReference("System.Windows.Forms")
    from System.Windows.Forms import MessageBox,MessageBoxButtons
    
    DebugText="This line is executed"
    response = MessageBox.Show(DebugText,"Your Caption",MessageBoxButtons.YesNo)
    print response
     
     
     

    License:  TIBCO BSD-Style License

     

     


    User Feedback

    Recommended Comments

    There are no comments to display.


×
×
  • Create New...