1+ from orangewidget .widget import Msg
2+
13try :
24 from gensim .models .callbacks import CallbackAny2Vec
35except ImportError :
4- raise ValueError ( "gensim library is required to use Node2Vec embedding. " )
6+ CallbackAny2Vec = None
57
68
79from AnyQt .QtCore import Qt , QThread
810from Orange .data import Table
911from Orange .widgets .widget import OWWidget
1012from orangewidget import gui , settings
1113from orangewidget .utils .signals import Input , Output
14+ from orangewidget .utils .widgetpreview import WidgetPreview
1215
1316from orangecontrib .network import Network
14- from orangecontrib .network .network import embeddings , readwrite
15- from orangewidget .utils .widgetpreview import WidgetPreview
17+ from orangecontrib .network .network import readwrite
18+ if CallbackAny2Vec is not None :
19+ from orangecontrib .network .network import embeddings
1620
1721
1822class EmbedderThread (QThread ):
@@ -28,7 +32,7 @@ def run(self):
2832 self .result = self .func ()
2933
3034
31- class ProgressBarUpdater (CallbackAny2Vec ):
35+ class ProgressBarUpdater (CallbackAny2Vec or object ):
3236 def __init__ (self , widget , num_epochs ):
3337 self .widget = widget
3438 self .curr_epoch = 0
@@ -56,6 +60,10 @@ class Inputs:
5660 class Outputs :
5761 items = Output ("Items" , Table )
5862
63+ class Error (OWWidget .Error ):
64+ unsupported_gensim = Msg (
65+ "This widget requires gensim, which is unsupported in Python>=3.14." )
66+
5967 resizing_enabled = False
6068 want_main_area = False
6169
@@ -100,12 +108,18 @@ def commit():
100108 checkbox_label = "Auto-commit" , orientation = Qt .Horizontal )
101109 commit ()
102110
111+ if CallbackAny2Vec is None :
112+ self .Error .unsupported_gensim ()
113+ self .controlArea .setDisabled (True )
114+
103115 @Inputs .network
104116 def set_network (self , net ):
105117 self .network = net
106118 self .commit ()
107119
108120 def commit (self ):
121+ if CallbackAny2Vec is None :
122+ return
109123 self .Warning .clear ()
110124
111125 # cancel existing computation if running
0 commit comments