Skip to content

Commit 99f72f2

Browse files
committed
WIP: Update OpGateway to support current codebase
1 parent fce98fb commit 99f72f2

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed
Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
1-
from scyjava import jimport
2-
import scyjava.config
31
from 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

95
op_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-
2618
def 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

Comments
 (0)