Werkzeuge

Springe zu Definition

Wird der Cursor im Editor auf den Namen einer Python-Funktion gesetzt, kann durch Drücken der F12 Taste zur Definition der Funktion gesprungen werden. Ist die Funktion eine .NET-Funktion wird eine Stub-Datei, erkennbar an der Endung .pyi, angezeigt.

Eine Stub-Datei enthält die Schnittstellendefinition und -dokumentation der öffentlichen (public) .NET-Members, auf die innerhalb des Python-Skripts zugegriffen werden kann.
Die Stub-Dateien werden bei dem ersten Start der Anwendung erstellt. Die Neuerstellung der Stub-Dateien kann erzwungen werden, indem der Stubs-Ordner (LisRT\bin\stubs\) gelöscht wird. Das Erzeugen der Stubs-Dateien kann einige Minuten dauern.
Stub-Datei
Abbildung 1. Beispiel der Stub-Datei des ScpiPowerSupplyModule
  1. Assembly-Information und Erstellungsdatum der Stub-Datei

  2. Am Beispiel der Klasse ScpiPowerSupplyModule werden deren Member veranschaulicht:

    1. Konstruktoren

    2. Eigenschaften

    3. Methoden

  3. Als Favorite gekennzeichneter Member, der im Autocomplete zuobert gelistet wird

Mit arrow left oder der Tastenkombination Strg+- können Sie an die vorherige Position zurückspringen.

Fehlerliste

In der Fehlerliste werden, das Python-Skript betreffende, Fehler-, Warn- und Informationsmeldungen angezeigt. Sie wird über das Menü des Python-Skript-Moduls Ansicht  Fehlerliste geöffnet. Durch Doppelklick auf einen Fehler kann direkt zu der entsprechenden Zeile in der Python-Datei gesprungen werden.

scriptErrorlist de
Abbildung 2. Fehlerliste-Fenster in der Tableiste

ToDo-Liste

Es können im Python-Skript über Kommentare Aufgaben eingepflegt werden.
Hierzu muss der Kommentar mit einem Schlüsselwort für die jeweilige Aufgabe beginnen. Eine Liste der Schlüsselwörter finden Sie im Hauptmenü unter Werkzeuge  Einstellungen  Script  ToDo-Liste.

settingsScriptToDoList de
Abbildung 3. ToDo-Liste in den Skript-Einstellungen

Die ToDo-Liste wird über das Menü des Python-Skript-Moduls Ansicht  ToDo-Liste geöffnet.

toDoList de
Abbildung 4. ToDo-Liste-Fenster in der Tableiste

Output

Im Output-Fenster werden Debug-Informationen und die print-Befehle aus dem Python-Skript angezeigt.
Sie lässt sich über das Menü des Python-Skript-Moduls Ansicht  Output öffnen.

scriptOutput de
Abbildung 5. Output-Fenster in der Tableiste

Call Stack

Der Call Stack wird über das Menü des Python-Skript-Moduls Ansicht  Call Stack geöffnet.

scriptCallStack de
Abbildung 6. Call Stack-Fenster in der Tableiste

Der Call Stack ist ein Mechanismus, mit dem ein Interpreter (hier der Python-Interpreter) seine Position in einem Skript, das mehrere Funktionen aufruft, verfolgen kann. Der Call Stack enthält die Information, welche Funktion, aus welcher Datei heraus, gerade ausgeführt wird und welche Unterfunktionen von der aufrufenden Funktion heraus aufgerufen werden.

Der Call Stack ist nur im Debugmodus bug aktiv.

Code-Formatierung

Über das Code-Formatierungs-Werkzeug codeFormatTool oder die Tastenkombination Strg+Shift+F kann Python-Code einer Datei automatisch formatiert werden.

Beispiel 1. Code-Formatierung
Vor dem Formatieren
def Func(x,y,   z =12)  :
    return x    *Y*z#return
Nach dem Formatieren
def Func(x, y, z=12):
    return x * Y * z  #return

Das Formatierungswerkzeug kann über die pyproject.toml-Datei konfiguriert werden, siehe hierzu YAPF-Dokumentation.

Beispiel 2. pyproject.toml
[tool.yapf]
based_on_style = 'pep8' (1)
column_limit = 240 (2)
1 Verwende den Stil PEP 8
2 Zeilen sollen nicht länger als 240 Zeichen sein

Git Integration

Ist die Versionsverwaltungssoftware Git installiert, stehen folgende Werkzeuge zur Verfügung:

  • git Öffnet die Git-GUI, beziehungsweise Git Extensions, falls es installiert ist

  • source commit Zeigt den aktuellen Branch an und öffnet die Git-GUI oder den Commit-Dialog von Git Extensions

Unittests

LisRT unterstützt Unittests mit Hilfe des Python - Unit Testing Framework. Klicken Sie auf das testsTool Werkzeug um das Tests-Fenster zu öffnen.

tabTestsInitial de
Abbildung 7. Tests-Fenster rechts in der Registerleiste
  • testsRefresh Sucht nach Unittests

  • testsRun Führt alle Unittests aus

  • testsRunSelected Führt die ausgewählten Unittests aus

  • testsStop Bricht den Testlauf ab

  • testsFilter Filter für alle, bestandene und nicht bestandene Tests

Beispiel 3. Unittest

In diesem Beispiel wird die Python-Methode get_image_name(type_name) aus der Python-Datei visual.inspection.py getestet.

import unittest
from visual_inspection import *

class TestVisualInspection(unittest.TestCase): (1)

    def test_get_image_name(self): (2)
        type_name = 'test.png'
        self.assertEqual('image_test.png', get_image_name(type_name)) (3)
1 Der Name eines Test-Case muss mit test beginnen
2 Der Name eines Tests muss mit test beginnen
3 Der Test endet mit einer assert Funktion
tabTestsWithExample de
Abbildung 8. Unittest-Beispiel

Zuletzt geändert 16.12.2024