1- from scyjava import jimport
2- import scyjava .config
31from types import MethodType
4- jars = scyjava .config .find_jars ("C:\\ Users\\ hiner\\ code\\ scijava\\ incubator\\ imagej\\ imagej-ops2\\ target\\ dependency\\ " )
5- scyjava .config .add_classpath (* jars )
6- scyjava .config .add_classpath ("C:\\ Users\\ hiner\\ code\\ scijava\\ incubator\\ imagej\\ imagej-ops2\\ target\\ imagej-ops2-0-SNAPSHOT.jar" )
7- env = jimport ('org.scijava.ops.engine.DefaultOpEnvironment' )()
2+
3+ env = ij .get ("org.scijava.legacy.service.OpEnvironmentService" ).env ()
84
95op_names = {str (name ) for info in env .infos () for name in info .names ()}
106
@@ -19,10 +15,6 @@ class OpGateway(OpNamespace):
1915 def __init__ (self , env ):
2016 super ().__init__ (env , 'global' )
2117
22- def nary (env , fqop , arity ):
23- arities = [env .nullary , env .unary , env .binary , env .ternary , env .quaternary , env .quinary , env .senary , env .septenary , env .octonary , env .nonary , env .decenary , env .arity11 , env .arity12 , env .arity13 , env .arity14 , env .arity15 , env .arity16 ]
24- return arities [arity ](fqop )
25-
2618def add_op (c , op_name ):
2719 if hasattr (c , op_name ):
2820 return
@@ -31,7 +23,7 @@ def f(self, *args, **kwargs):
3123 print (type (self ))
3224 fqop = op_name if self .ns == 'global' else self .ns + "." + op_name
3325 run = kwargs .get ('run' , True )
34- b = nary ( self .env , fqop , len ( args ) ).input (* args )
26+ b = self .env . op ( fqop ).input (* args )
3527 # inplace
3628 # ops.filter.gauss(image, 5, inplace=0)
3729 if (inplace := kwargs .get ('inplace' , None )) is not None :
@@ -52,12 +44,18 @@ def f(self, *args, **kwargs):
5244 # op_name is a global.
5345 setattr (c , op_name , f )
5446 else :
55- # if isinstance(c, MethodType):
56- # print("oh no! - race condition happened")
47+ # if isinstance(c, MethodType):
48+ # print("oh no! - race condition happened")
5749 m = MethodType (f , c )
5850 setattr (c , op_name , m )
5951
60- def add_namespace (c , ns , op_name ):
52+ # ipython HACKS
53+ globals ()['add_op' ] = add_op
54+ globals ()['OpNamespace' ] = OpNamespace
55+ globals ()['OpGateway' ] = OpGateway
56+ globals ()['MethodType' ] = MethodType
57+
58+ def add_namespace (c , ns , env , op_name ):
6159 if not hasattr (c , ns ):
6260 setattr (c , ns , OpNamespace (env , ns ))
6361 add_op (getattr (c , ns ), op_name )
@@ -68,8 +66,9 @@ def add_namespace(c, ns, op_name):
6866 if dot >= 0 :
6967 ns = op [:dot ]
7068 op_name = op [dot + 1 :]
71- add_namespace (OpGateway , ns , op_name )
69+ add_namespace (OpGateway , ns , env , op_name )
7270 else :
7371 print (f"registering global op: { op } " )
7472 add_op (OpGateway , op )
7573
74+ ops = OpGateway (env )
0 commit comments