[printing] Retour à try_import

This reverts commit a79e0a4113.
Il vaut mieux laisser les imports en tête de fichier dans la mesure du
possible. De plus, cette erreur est plus confortable, car l'apprenti sait
dès le départ qu'il y a un problème. Enfin, ce bout de code try_import
peut servir pour d'autres imports posant des problèmes. On prend cependant
note que try_import pour annuaires_pg n'est pas utile.
This commit is contained in:
Pierre-Elliott Bécue 2014-02-02 23:51:39 +01:00
parent 592394a030
commit 7d0d6a8352

View file

@ -1,13 +1,36 @@
#!/bin/bash /usr/scripts/python.sh
# -*- coding: utf-8 -*-
from gestion.affich_tools import coul, tableau
import importlib
import time
import sys
import gestion.annuaires_pg
# Import inutile, mais on en a besoin pour que le
# script continue à fonctionner.
import gestion
def try_import(lib):
"""
Cette fonction sert à faire de l'import soft : si l'import
crashe, par exemple, si le fichier de secrets ne peut être
lu par un apprenti, ça permet toujours d'utiliser ce
qui n'utilise pas l'import raté.
"""
if not isinstance(lib, unicode):
lib = lib.decode('utf-8')
try:
lib = importlib.import_module(lib)
except:
if sys.stdout.isatty():
print (u"Impossible d'importer %s, c'est sans doute un problème de droits." % lib).encode('utf-8')
lib = None
return lib
# Ici, on utilise le module gestion importé
gestion.whos = try_import(u"gestion.whos")
gestion.annuaires_pg = try_import("gestion.annuaires_pg")
def prise_etat(chbre):
# Il faut écrire une vrai fonction pour ça au lieu d'utiliser celle du vieux whos cf Jeudi28Novembre2013
import gestion.whos
if chbre=="????":
return coul("Chambre invalide", "violet")
return gestion.whos.prise_etat(chbre)[0]