[weboob] win32 console lib

Romain Bignon romain at peerfuse.org
Mon Apr 11 11:36:52 CEST 2011


On 05/Apr - 12:45, laurent.dufrechou at gmail.com wrote:
> Ok je vais regarder ca.
> Du coup ca ressemble a ca?:
> 
> class toto
> ...
> 
> class toto_win32(toto):
> ...
> 
> class toto_linux(toto):
> ...
> 
> qq part ds le code
> #if win32
> my_object = toto_win32()
> #else
> ...

Effectivement, un truc du genre. Le mieux c'est que ce soit le constructeur de
ConsoleApplication qui le fasse, je pense.

> Oui je me suis dit ca cette nuit. Par contre ou mettre les
> definitions RED et NO_COLOR pour que boobank puisse y acceder?
> au même endroit que BOLD et NC?
> 
> ca te va ca?
> 
> class AnsiColor():
> # shell escape strings
> BOLD = ' [1m'
> NC = ' [0m' # no color
> RED ....
> 
> class ConsoleApplication(BaseApplication, AnsiColor):
> ....

Pour moi ce serait carrément dans la classe de base toto. L'inconvénient c'est
qu'on ne peut plus en dériver.

Bon en fait il me vient une idée démente, vous me dites ce que vous en pensez.

On pourrait garder ce que tu as fait dans ton patch, à savoir un truc genre:

if os.platform == 'win32':
    try:
        from toto import TotoColorama as Toto
    except ImportError:
        from toto import TotoNoColor as Toto
else:
    from toto import TotoUnix as Toto

puis :

class ConsoleApplication(BaseApplication, Toto)

En fait cette méthode a l'inconvénient qu'il empêche l'utilisation d'un argument
--no-colors qui désactive les couleurs, puisque la classe sera construite
*avant* le parsing des arguments.

Ou alors TotoNoColor n'existe pas, et IToto a une méthode pour désactiver la
couleur (qui va se contenter de mettre des chaînes vides dans toutes les
constantes, ou du genre.

Ce qui serait bien aussi, c'est que IToto propose des méthodes virtuelles genre
toto.bold('text') qui met en gras, etc, histoire de rendre ça plus joli.

Romain
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: Digital signature
URL: <http://lists.symlink.me/pipermail/weboob/attachments/20110411/1827d1ef/attachment.pgp>


More information about the weboob mailing list