Laden...

Python Code validierung mit c#

Erstellt von mariob1 vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.344 Views
M
mariob1 Themenstarter:in
22 Beiträge seit 2010
vor 13 Jahren
Python Code validierung mit c#

Hi,

ich will versuchen meinen Eigenen Python Code mittels C# zu überprüfen.
Hat da eventuell jemand schon erfahrung damit und kann mir da ein paar Tipps/Vorschläge geben?

Meine Idee wäre es, bei einem Button "validiere", auf der GUI zu klicken und der eingegebene Code wird mittels des Python-Syntaxparsers überprüft. Falls der Code Fehler enthält wird dies, wie im VS, mit Zeilennummer, angezeigt.

Danke schon im voraus

C
401 Beiträge seit 2007
vor 13 Jahren

Ich denke das geht leichter, wenn du es direkt mit Python machts. Siehe exec. Einfach Zeile für Zeile ausführen und wenn es knallt haste die Zeilennummer.

edit: Obwohl das natürlich nur für einfachen Code geht...

edit 2: Du willst dir also einen Parser bauen, der deinen Code aus Korrektheit überprüft, der wie verstehe ich das? Wäre es nicht einfacher Tests zu schreiben? Dann hast du zwar nicht die genaue Zeile, aber es ist deutlich weniger Aufwand und Tests sollte man eh schreiben 😉

M
mariob1 Themenstarter:in
22 Beiträge seit 2010
vor 13 Jahren

danke dir für deine Antworten!

mit Python habe ich keine Erfahrungen gesammelt, eher mit C#. Ich habe mir auch die Syntax von Python angesehen. Schwer ist diese nicht, aber trotzdem möchte ich bei C# bleiben.

zu deinem 2. Edit:
Ja, das hast du richtig verstanden, dass ich mir sozusagen einen Parser bauen will. In wie fern meinst du Test schreiben?
Ich möchte schon genau die Zeile wissen, wo der Fehler aufgetreten ist.

Thx

C
401 Beiträge seit 2007
vor 13 Jahren

Das Problem ist, dass Python dynamisch typisiert ist, du also häufig erst zur Laufzeit weisst, von welchem Typ ein Objekt ist. Genauer gesagt immer dann, wenn das Objekt nicht im aktuellen Kontext erstellt wird. Deswegen wirst du nie durch eine reine Analyse des Quellcodes alle Fehler, bzw. durch eine solche Analyse nur die wenigsten Fehler finden können.

Mit Tests schreiben meine ich z.B. Unittests. Die sagen dir zwar nicht genau welche Zeile Fehlerhaft ist, dafür aber, in welcher Methode.

Btw. liefert der Python Interpreter dir die Angaben, die du haben möchtest. Also Dateiname und Zeilennummer, in der der Fehler aufgetreten ist.

B
45 Beiträge seit 2007
vor 13 Jahren

Schau dich mal im IronPhyton Umfeld um, IronPhyton sollte eigentlich einen Parser für Phython haben und ist in C# ansprechbar...