From 507d189e7f72f15f9718429f34ba6db6ffbc7bda Mon Sep 17 00:00:00 2001 From: Omar Rizwan Date: Fri, 6 Feb 2026 15:29:43 -0500 Subject: python: WIP: Working on Image / argtype support. Add python to prelude. --- lib/python.tcl | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) (limited to 'lib/python.tcl') diff --git a/lib/python.tcl b/lib/python.tcl index 0df6dd9a..27710c17 100644 --- a/lib/python.tcl +++ b/lib/python.tcl @@ -128,7 +128,7 @@ while True: for argtype in fn_argtypes: if argtype in registered_argtypes: # Use registered deserializer, giving it direct socket access - deserialized = argtypes[arg_type](socket) + deserialized = registered_argtypes[argtype](socket) parsed_args.append(deserialized) else: # Standard JSON decode @@ -178,6 +178,7 @@ Uvx method unknown {fnName args} { # Check if this is a custom argtype if {[dict exists $registeredArgtypes $schema]} { set serializerCode [dict get $registeredArgtypes $schema] + puts "zmq ($zmq) socket ($socket) arg ($arg) sc ($serializerCode)" apply [list {zmq socket arg} $serializerCode] $zmq $socket $arg } else { # Use JSON encoding @@ -205,18 +206,10 @@ Uvx method run {code} { } Uvx method argtype {typeName serializer deserializer} { - # Store the Tcl serializer + # Store the Tcl serializer: dict set registeredArgtypes $typeName $serializer - - # Register the Python deserializer with Python - $zmq zmqSendMore $socket "__register_argtype__" - $zmq zmqSendMore $socket $typeName - $zmq zmqSendMore $socket $deserializer - $zmq zmqSend $socket "" 0 - - set response [$zmq zmqRecvMulti $socket] - lassign $response status value - if {$status eq "error"} { error $value } + # Store the Python deserializer: + $self __register_argtype__ $typeName $deserializer } Uvx method def {fnName argSpec body} { @@ -236,10 +229,6 @@ Uvx method def {fnName argSpec body} { # Register function signature with Python $self __register_function__ $fnName {*}$argTypes - set response [$zmq zmqRecvMulti $socket] - lassign $response status value - if {$status eq "error"} { error $value } - # Create Python function set pythonArgs [join $argNames ", "] set pythonDef "def $fnName\($pythonArgs):\n" -- cgit v1.2.3