Control Blocks
Control Blocks are for composing an HTML form with Compute layout block.
Arakawa supports various control blocks.
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) File ~/work/arakawa/arakawa/docs/.venv/lib/python3.11/site-packages/multimethod/__init__.py:350, in multimethod.__call__(self, *args, **kwargs) 349 try: --> 350 return func(*args, **kwargs) 351 except TypeError as ex: File ~/work/arakawa/arakawa/docs/.venv/lib/python3.11/site-packages/arakawa/view/visitors.py:93, in PreProcess._(self, b) 90 self.in_collapsible_group = isinstance(b, Blocks) or ( 91 isinstance(b, bk.Group) and b.columns == 1 92 ) ---> 93 _ = b.traverse(self) 94 self.merge_text() File ~/work/arakawa/arakawa/docs/.venv/lib/python3.11/site-packages/arakawa/blocks/layout.py:68, in ContainerBlock.traverse(self, visitor) 66 def traverse(self, visitor: VV) -> VV: 67 # perform a depth-first traversal of the contained blocks ---> 68 return reduce( 69 lambda _visitor, block: block.accept(_visitor), self.blocks, visitor 70 ) File ~/work/arakawa/arakawa/docs/.venv/lib/python3.11/site-packages/arakawa/blocks/layout.py:69, in ContainerBlock.traverse.<locals>.<lambda>(_visitor, block) 66 def traverse(self, visitor: VV) -> VV: 67 # perform a depth-first traversal of the contained blocks 68 return reduce( ---> 69 lambda _visitor, block: block.accept(_visitor), self.blocks, visitor 70 ) TypeError: 'NoneType' object is not callable The above exception was the direct cause of the following exception: DispatchError Traceback (most recent call last) File ~/work/arakawa/arakawa/docs/.venv/lib/python3.11/site-packages/IPython/core/formatters.py:984, in IPythonDisplayFormatter.__call__(self, obj) 982 method = get_real_method(obj, self.print_method) 983 if method is not None: --> 984 method() 985 return True File ~/work/arakawa/arakawa/docs/.venv/lib/python3.11/site-packages/arakawa/blocks/base.py:61, in BaseBlock._ipython_display_(self) 58 from arakawa.view import Blocks 60 if get_environment().support_rich_display: ---> 61 html_str = stringify_report(Blocks(self)) 62 display(HTML(html_str)) 63 else: File ~/work/arakawa/arakawa/docs/.venv/lib/python3.11/site-packages/arakawa/processors/api.py:95, in stringify_report(blocks, name, formatting, cdn_base, resizable, standalone) 82 klass = ( 83 ExportHTMLStringInlineAssets 84 if resizable 85 else ExportHTMLStringInlineNonResizableAssets 86 ) 87 export = klass( 88 name=name or "Report", 89 formatting=formatting, 90 cdn_base=cdn_base, 91 standalone=standalone, 92 ) 93 return ( 94 Pipeline(s) ---> 95 .pipe(PreProcessView(is_finalized=True)) 96 .pipe(ConvertPydantic()) 97 .pipe(export) 98 .result 99 ) File ~/work/arakawa/arakawa/docs/.venv/lib/python3.11/site-packages/arakawa/processors/types.py:56, in Pipeline.pipe(self, p) 54 def pipe(self, p: BaseProcessor[P_IN, P_OUT]) -> Pipeline[P_OUT]: 55 p.s = self._state ---> 56 y = p.__call__(self._x) # need to call as positional args 57 self._state = p.s 58 return Pipeline(self._state, y) File ~/work/arakawa/arakawa/docs/.venv/lib/python3.11/site-packages/arakawa/processors/processors.py:67, in PreProcessView.__call__(self, _) 65 # Block-API visitors 66 pp = PreProcess(is_finalized=self.is_finalized) ---> 67 v.accept(pp) 68 v1 = pp.root 69 # v1 = copy(v) 70 71 # update the processor state File ~/work/arakawa/arakawa/docs/.venv/lib/python3.11/site-packages/arakawa/blocks/base.py:67, in BaseBlock.accept(self, visitor) 66 def accept(self, visitor: VV) -> VV: ---> 67 visitor.visit(self) 68 return visitor File ~/work/arakawa/arakawa/docs/.venv/lib/python3.11/site-packages/multimethod/__init__.py:352, in multimethod.__call__(self, *args, **kwargs) 350 return func(*args, **kwargs) 351 except TypeError as ex: --> 352 raise DispatchError(f"Function {func.__code__}") from ex DispatchError: Function <code object _ at 0x55b09af50720, file "/home/runner/work/arakawa/arakawa/docs/.venv/lib/python3.11/site-packages/arakawa/view/visitors.py", line 79>
<arakawa.blocks.controls.FileField at 0x7fb4db913390>
API References¶
Check out the API Reference to know details: