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>

Répondre à