Seite 1 von 1

Distutils alte Module löschen

Verfasst: Montag 16. Februar 2009, 01:28
von veers
Ich habe ein Problem mit pythons distutils. Und zwar will ich das wenn die neue Version meines Modules installiert wird die alten files entfernt werden.

Praktisch habe ich folgendes Problem:

Alte Version:
appname/appname.py
appname/stuff.py

Neue Version:
appname/app.py
appname/stuff.py

Weil appname als Modulname Probleme gemacht hat will ich nun sicher stellen das wenn die neue Version installiert wird appname/appname.py[co]?
entfernt wird. Wie mache ich das?

Und meine ich das nur oder sind die distutils... unvollständig.

Gruss,
Jonas

Re: Distutils alte Module löschen

Verfasst: Montag 16. Februar 2009, 10:20
von CM
veers hat geschrieben:Und meine ich das nur oder sind die distutils... unvollständig.
Vielleicht, vor allem aber etwas unübersichtlich ;-).

Also, ich weiß nicht, wie man so etwas in distutils integrieren könnte: Woher sollen die distutils *wissen* können, ob das jetzt ein Modul ist, das dem Paket zugefügt wurde, oder es sich um eine Umbenennung handelt?
Du könntest allerdings Dein setup.py mit einem neuen Kommando erweitern. Z. B. etwa so:

Code: Alles auswählen

class Cleanup(Command):
    description = "bla bla"
    user_options = [ was auch immer ]
    
    def initialize_options(self):
        # was auch immer Du als default setzen willst
    
    # von distutils verlangt
    def finalize_options(self):
        pass

    def run(self):
        cleanupregex = re.compile(Dein Ähnlichkeitsausdruck)
        # wenn Filename.match(cleanupregex): löschen
Na ja, ziemlich wüst, aber Du bist gut genug, das in die Tat umzusetzen, wenn Dir die Idee zusagt.

Gruss,
Christian

Re: Distutils alte Module löschen

Verfasst: Montag 16. Februar 2009, 17:19
von name
veers hat geschrieben:Und meine ich das nur oder sind die distutils... unvollständig.
Da ist 'schrecklich' imho treffender.

Re: Distutils alte Module löschen

Verfasst: Montag 16. Februar 2009, 20:23
von veers
CM hat geschrieben:Also, ich weiß nicht, wie man so etwas in distutils integrieren könnte: Woher sollen die distutils *wissen* können, ob das jetzt ein Modul ist, das dem Paket zugefügt wurde, oder es sich um eine Umbenennung handelt?
Es könnte sich einfach merken welche Files es installiert. Dann könnte es diese nämlich auch deinstallieren. Das mit dem distutils Command wäre eine Möglichkeit, ja. Aber irgend wie geht meine Tendenz langsam in Richtung eigene setup.py oder zumindest eigener Install Command. Dann bin ich wenigstens selbst schuld.

Jonas

Re: Distutils alte Module löschen

Verfasst: Montag 16. Februar 2009, 21:02
von CM