Re: Configuration de Mailman : un avis de pythoniste svp...

Pàgina inicial

Reply to this message
Autor: Frédéric
Data:  
A: ML Guilde
Assumpte: Re: Configuration de Mailman : un avis de pythoniste svp...
Le jeudi 6 juillet 2006 09:15, Patrice Karatchentzeff a écrit :

> J'ai des soucis avec Mailman et le changement de nom d'une machine...
>
> Dans les messages de templates de Mailman, les liens sont faux pour le
> nom de la machine.
>
> D'après les templates (par exemple, templates/en/postheld.txt), le
> lien est obtenu via la variable %(confirm)s...
>
> Si on gratouille un peu le code de Python, cette variable s'obtient par
> GetScriptURL qui est défini par ScriptURL dans Util.py... La définition
> est celle-là :
>
> def ScriptURL(target, web_page_url=None, absolute=False):
>     """target - scriptname only, nothing extra
>     web_page_url - the list's configvar of the same name
>     absolute - a flag which if set, generates an absolute url
>     """
>     if web_page_url is None:
>         web_page_url = mm_cfg.DEFAULT_URL_PATTERN % get_domain()
>         if web_page_url[-1] <> '/':
>             web_page_url = web_page_url + '/'
>         if web_page_url[-1] <> '/':
>             web_page_url = web_page_url + '/'
>     #
>     web_page_url = mm_cfg.DEFAULT_URL_PATTERN % get_domain()
>     if web_page_url[-1] <> '/':
>         web_page_url = web_page_url + '/'
>     if web_page_url[-1] <> '/':
>        web_page_url = web_page_url + '/'
>     #
>     fullpath = os.environ.get('REQUEST_URI')
>     if fullpath is None:
>         fullpath = os.environ.get('SCRIPT_NAME', '') + \
>                    os.environ.get('PATH_INFO', '')
>     baseurl = urlparse.urlparse(web_page_url)[2]
>     if not absolute and fullpath.endswith(baseurl):
>         # Use relative addressing
>         fullpath = fullpath[len(baseurl):]
>         i = fullpath.find('?')
>         if i > 0:
>             count = fullpath.count('/', 0, i)
>         else:
>             count = fullpath.count('/')
>         path = ('../' * count) + target
>     else:
>         path = web_page_url + target
>     return path + mm_cfg.CGIEXT

>
> Voilà, c'est beau comme du python, certainement hyper maintenable par
> les cerveaux de l'équipe de dév de Mailman mais j'aimerai comprendre
> que cela fait pour que je puisse enfin tuner le mm_cfg.py (encore un
> truc merveilleux de Mailman...) et que cette migration en soit enfin
> une...


Petit cours de python pour t'aider à trouver :

>>> d = {'confirm':'blablabla', 'truc':1, 'bidule':2}
>>> print "%(confirm)s : %(truc)d" % d

blablabla : 1

Qu'est-ce qu'il y a dans la variable DEFAULT_URL_PATTERN du module
mm_cfg.py ?

Il faudrait aussi savoir ce que retourne get_domain()...

<troll>
> PS : je ne sais pas ce que je hais le plus : python ou les
> développeurs Python :)


Faut avouer que ce code n'est pas des plus limpides ; un code objet serait
certainement plus lisible. Ça doit être un transfuge Perl qui a développé
ça, et qui n'a pas encore pris les bonnes habitudes ;o)

N'empèche, sans connaître python, tu es déjà allé assez loin dans ton
analyse...

</troll>

--
Frédéric

http://www.gbiloba.org