API von python projekt vergleichen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
reox
Beiträge: 2521
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

API von python projekt vergleichen

Beitrag von reox » 25.01.2019 19:06:09

Ich arbeite an einem python projekt und möchte gerne überprüfen welche Klassen und Funktionen sich zwischen zwei Versionen geändert haben.
Es gilt zu testen ob die nach außen hin exportiere API änderungen hat.

Ein Beispiel:

Code: Alles auswählen

__version__ = "0.1.2"
class Foo:
    def bla(self):
        pass
    def woot(self):
        pass
    def _baz(self):
        pass
vs:

Code: Alles auswählen

__version__ = "0.2.3"
class Foo:
    def woot(self):
        pass
    def rofl(self):
        pass
    def _lulz(self):
        pass
In diesem Fall möchte ich feststellen können, dass bla weg ist und rofl dazu gekommen ist. die Funktionen _baz und _lulz interessieren mich weniger, aber wenn man das auch mit ausgeben könnte wäre das natürlich toll.
Spezialfälle wie variablen die in properties umgewandelt worden sind sollten auch behandelt werden.
Pluspunkt gibts auch noch wenn es feststellt, dass ein modul/klasse/funktion verschoben wurde.
Und es sollte eine statische analysemethode sein, dH ich möchte die sachen nicht unbedingt in den interpreter laden um mir das zB per dir() auszugeben (obwohl das auch eine variante wäre).

Irgendwie finde ich zu dem thema genau nichts. Entweder nur hinweise auf dir(), inspect oder andere reflection module. Wie heißt sowas was ich will?

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: API von python projekt vergleichen

Beitrag von cronoik » 26.01.2019 14:52:17

Was spricht denn gegen inspect?
Hilf mit unser Wiki zu verbessern!

reox
Beiträge: 2521
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: API von python projekt vergleichen

Beitrag von reox » 26.01.2019 15:11:42

du meinst: https://docs.python.org/3/library/inspect.html ?
Das ist ja kein statisches tool oder übersehe ich da was?

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: API von python projekt vergleichen

Beitrag von cronoik » 26.01.2019 15:16:17

Ja ich meinte diese Bibliothek. Es ist kein statisches Tool, aber damit laesst sich doch schnell etwas bauen. Etwas fertiges ist mir nicht bekannt.
Hilf mit unser Wiki zu verbessern!

reox
Beiträge: 2521
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: API von python projekt vergleichen

Beitrag von reox » 26.01.2019 15:22:05

Das problem ist, dass ich damit immer den code importieren muss und damit auch ungewollt code ausführe.
Ich hab schon gelesen, dass man sich mit ast was bauen kann, aber das wird halt schnell kompliziert und da gibts sicher ne menge spezialfälle zu beachten ;)
Ich vermute mal ich bin auch nicht der erste der sowas braucht.
Aber gut, ich fang mal an was zu basteln.

Antworten