[Python-de] Loggen der Versionen eingebundener Module

Peter Hoffmann ph at peter-hoffmann.com
Mi Dez 1 18:06:22 CET 2010


Hallo Frank,

die Version deiner Module sollte wie in PEP8[1] unter Version
Boookkeeping beschrieben in einer Variable __version__ stehen. Wenn
ihr Subversion oder CVS benutzt könnt ihr dafür Keyword Substitution
nehmen. Also einfach unter den Docstring folgendes einfügen:

"""barmodule.py docstring"""
 __version__ = "$Revision: 86849 $"

Um die Versionsnummern zu loggen würde ich das Standard python logging
Modul verwenden [3]. Dazu dann unter __version__ noch folgendes
schreiben:

    import logging
    version_logger = logging.getLogger('VERSION')
    version_logger.info(__version__)

Jetzt muss noch im Versuchsskript der logger konfiguriert und die
anderen Modul importiert werden:

    import logging
    format = "%(asctime)s - %(pathname)s %(name)s - %(message)s"
    logging.basicConfig(level=logging.INFO, format=format)
    import barmodule

Wenn du jetzt python bar.py aufrufst solltest du folgende Ausgabe bekommen:

    2010-12-01 18:01:16,260 - foo.py VERSION - 1.0.5
    2010-12-01 18:01:16,260 - /tmp/py/barmodule.py VERSION - 1.4.5

In der Konfiguration des Loggings kannst du die Ausgabe auch in eine
Datei umleiten.

Viele Grüße,
Peter


[1] http://www.python.org/dev/peps/pep-0008/
[2] http://svnbook.red-bean.com/en/1.4/svn.advanced.props.special.keywords.html
[3] http://docs.python.org/library/logging.html




Mehr Informationen über die Mailingliste python-de