S'il y a un souci avec leur extension, oui, il vaut mieux leur rapporter le
problème.
Si c'est pour faire du dev perso qui ne sera jamais accepté par CodeFactory, tu
peux probablement faire comme suit:
1. Nommer ton extension de telle sorte à ce qu'elle se charge à la place de
celle de CodeFactory; à voir s'il faut que le nom précède ou suive dans
l'alphabet.
2. Dans ton code importer l'appModule de CodeFactory:
sys.path.insert(0, ('cheminConfigNVDA\addons\codeFactory\appModule\appModules')
from codeFactoryModule import AppModule as CFAppModule
del sys.path[0]
class AppModule(CFAppModule):
...
Bon c'est juste le principe, je n'ai pas essayé.
PS: Si tu nous disais directement dès le début que tu essaies d'améliorer
l'appModule de CodeFactory et pourquoi, on irait plus vite droit au but dans
les réponses.
Cyrille
De : "yannick"
A : scriptnvda@xxxxxxxxxxxxx
Envoyé: jeudi 2 Juin 2022 12:48
Objet : [script nvda] Re: [script nvda] Re: [script nvda] améliorer un
appModule existant
ha merci,
je vais devoir contacter code factory au sujet de leur addon alors ....
Le 02/06/2022 à 11:37, cyrille.bougot2 (cyrille.bougot2) a écrit :
Salut Yannick
Ca ne marche pas car l'exemple du guide permet d'améliorer un appModule de NVDA
(nvdaBuiltins) avec un appModule externe (scratchpad ou add-on).
Dans ton cas, tu joues avec deux appModules externes.
D'ailleurs l'instruction suivant doit provoquer une erreur:
from nvdaBuiltin.appModules.screamer import *
Vu que tu es l'auteur des deux appModules, il te suffit de les fusionner en un
seul. Lorsqu'il s'agit de deux auteurs différents qui ne se parlent pas, le
problème est plus compliqué et n'a pas de solution simple prévue par NVDA. Il
faut alors connaître l'ordre de chargement des modules et que le deuxième
appelle directement le premier.
Cyrille
De : "yannick"
A : scriptnvda@xxxxxxxxxxxxx
Envoyé: jeudi 2 Juin 2022 09:56
Objet : [script nvda] améliorer un appModule existant
bonjour, je voudrais améliorer un appModule. dans mon cas il s'agit de screamer
radio:
j'ai écrit un appModule pour screamer radio.
Mais je voudrais écrire un second appModule totalement séparé du premier.
(bien entendu, ici il s'agit d'un exercice pour comprendre la façon dont je
devrais m'y prendre.)
dans
le guide du développeur
à la section "Other remarks on app modules", une explication est donnée :
is called overriding the built-in module):
from nvdaBuiltin.appModules.appName import *
Where appName is the app module you wish to extend. For example, if you wish to
support different controls in Windows calculator (calc.py), use:
from nvdaBuiltin.appModules.calc import *\
j'ai beau suivre la méthode en ajoutant l'instruction :
from nvdaBuiltin.appModules.screamer import *
et :
class AppModule(AppModule):...
rien n'y fait, ce second module n'est pas chargé puisqu'il n'y a même pas la
création du dossier
__pycache__
avez vous une piste ?
merci !