On 23 Sep 2005, at 10:08, Mickael Terrien wrote:
Bonjour à tous, J'essaies de patcher la classe "__init__.py" de Epoz et plus particulièrement la méthode "Epoz".
__init__.py correspond aux définitions globales du package qui contient ce fichier. Tout ce qui y est défini se retrouve dans le package, donc dans le namespace Products.Epoz dans votre cas.
Pour que vous compreniez bien, voilà l'arbo concernée : - Products/Epoz/__init__ - Products/MonProduit/__init__ - Products/MonProduit/patch__init__Epoz.py Dans mon fichier "patch__init__Epoz.py" : # J'importe ma classe à patcher from Products.Epoz.__init__ import __init__ # autres imports ... # Ma méthode modifiée def Epoz(..) : # Nouveau code ... #J'applique la modification à la classe __init__.Epoz = Epoz
Il faut plutôt faire: import Products.Epoz Products.Epoz.Epoz = votreEpoz Florent
En plus de ça, j'ajoute biensûr à mon produit dans son fichier "__init__.py" l'import de mon fichier "patch__init__Epoz.py" afin que le patch soit compilé et pris en compte. Je lance le serveur et là j'ai l'erreur : "TypeError: 'method-wrapper' object has only read-only attributes (assign to .Epoz)" Je veux juste avoir la confirmation que je ne peux pas patcher la classe __init__.
-- Florent Guillaume, Nuxeo (Paris, France) CTO, Director of R&D +33 1 40 33 71 59 http://nuxeo.com [EMAIL PROTECTED] _______________________________________________ cps-users-fr Adresse de la liste : [email protected] Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>
