class_docstr: Interface specification for `Type`\s that can be arguments to a `CLinkerOp`.
  
  A `CLinkerType` instance is mainly responsible  for providing the C code that
  interfaces python objects with a C `CLinkerOp` implementation.
class_docstr_tok: ["Interface","specification","for","`","Type","`","\\s","that","can","be","arguments","to","a","`","CLinkerOp","`",".","A","`","CLinkerType","`","instance","is","mainly","responsible","for","providing","the","C","code","that","interfaces","python","objects","with","a","C","`","CLinkerOp","`","implementation","."]
docstr: Return C code to pack C types back into a ``PyObject``.
  
  The code returned from this function must be templated using
  ``"%(name)s"``, representing the name that the caller wants to
  call this `Variable`. The returned code may set ``"py_%(name)s"``
  to a ``PyObject*`` and that ``PyObject*`` will be accessible from
  Python via ``variable.data``. Do not forget to adjust reference
  counts if ``"py_%(name)s"`` is changed from its original value.
  
  Parameters
  ----------
  name
      WRITEME
  sub
      WRITEME
code: def c_sync(self, name: str, sub: dict[str, str]) -> str:
      """Return C code to pack C types back into a ``PyObject``.
  
      The code returned from this function must be templated using
      ``"%(name)s"``, representing the name that the caller wants to
      call this `Variable`. The returned code may set ``"py_%(name)s"``
      to a ``PyObject*`` and that ``PyObject*`` will be accessible from
      Python via ``variable.data``. Do not forget to adjust reference
      counts if ``"py_%(name)s"`` is changed from its original value.
  
      Parameters
      ----------
      name
          WRITEME
      sub
          WRITEME
  
      """
  
imports: import typing
  import warnings
  from abc import abstractmethod
  from typing import Callable, Optional
  from pytensor.graph.basic import Apply, Constant
  from pytensor.graph.utils import MethodNotDefined
label_desc: Use image node_id 4 for calling the CLinkerType obj's underlying member method code with example usage: obj.c_sync(name, sub) without return types