[UPD]Yaltik DSL : files built for prod

This commit is contained in:
Fabien BOURGEOIS 2022-11-18 10:37:20 +01:00
parent 71475e3f27
commit 59af616aab
5 changed files with 22 additions and 31 deletions

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python2 #!/usr/bin/env python2
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# __coconut_hash__ = 0xd86e9c3c # __coconut_hash__ = 0x620e4294
# Compiled with Coconut version 2.1.1 [The Spanish Inquisition] # Compiled with Coconut version 2.1.1 [The Spanish Inquisition]
@ -28,7 +28,7 @@ if _coconut_module_name and _coconut_module_name[0].isalpha() and all(c.isalpha(
_coconut_v_type.__module__ = _coconut_full_module_name _coconut_v_type.__module__ = _coconut_full_module_name
_coconut_sys.modules[_coconut_full_module_name] = _coconut__coconut__ _coconut_sys.modules[_coconut_full_module_name] = _coconut__coconut__
from __coconut__ import * from __coconut__ import *
from __coconut__ import _coconut_tail_call, _coconut_tco, _coconut_call_set_names, _coconut_handle_cls_kwargs, _coconut_handle_cls_stargs, _namedtuple_of, _coconut, _coconut_super, _coconut_MatchError, _coconut_iter_getitem, _coconut_base_compose, _coconut_forward_compose, _coconut_back_compose, _coconut_forward_star_compose, _coconut_back_star_compose, _coconut_forward_dubstar_compose, _coconut_back_dubstar_compose, _coconut_pipe, _coconut_star_pipe, _coconut_dubstar_pipe, _coconut_back_pipe, _coconut_back_star_pipe, _coconut_back_dubstar_pipe, _coconut_none_pipe, _coconut_none_star_pipe, _coconut_none_dubstar_pipe, _coconut_bool_and, _coconut_bool_or, _coconut_none_coalesce, _coconut_minus, _coconut_map, _coconut_partial, _coconut_get_function_match_error, _coconut_base_pattern_func, _coconut_addpattern, _coconut_sentinel, _coconut_assert, _coconut_raise, _coconut_mark_as_match, _coconut_reiterable, _coconut_self_match_types, _coconut_dict_merge, _coconut_exec, _coconut_comma_op, _coconut_multi_dim_arr, _coconut_mk_anon_namedtuple, _coconut_matmul from __coconut__ import _coconut_call_set_names, _coconut_handle_cls_kwargs, _coconut_handle_cls_stargs, _namedtuple_of, _coconut, _coconut_super, _coconut_MatchError, _coconut_iter_getitem, _coconut_base_compose, _coconut_forward_compose, _coconut_back_compose, _coconut_forward_star_compose, _coconut_back_star_compose, _coconut_forward_dubstar_compose, _coconut_back_dubstar_compose, _coconut_pipe, _coconut_star_pipe, _coconut_dubstar_pipe, _coconut_back_pipe, _coconut_back_star_pipe, _coconut_back_dubstar_pipe, _coconut_none_pipe, _coconut_none_star_pipe, _coconut_none_dubstar_pipe, _coconut_bool_and, _coconut_bool_or, _coconut_none_coalesce, _coconut_minus, _coconut_map, _coconut_partial, _coconut_get_function_match_error, _coconut_base_pattern_func, _coconut_addpattern, _coconut_sentinel, _coconut_assert, _coconut_raise, _coconut_mark_as_match, _coconut_reiterable, _coconut_self_match_types, _coconut_dict_merge, _coconut_exec, _coconut_comma_op, _coconut_multi_dim_arr, _coconut_mk_anon_namedtuple, _coconut_matmul
_coconut_sys.path.pop(0) _coconut_sys.path.pop(0)
# Compiled Coconut: ----------------------------------------------------------- # Compiled Coconut: -----------------------------------------------------------

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python2 #!/usr/bin/env python2
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# __coconut_hash__ = 0xb1df5fa # __coconut_hash__ = 0xfb8bf4b7
# Compiled with Coconut version 2.1.1 [The Spanish Inquisition] # Compiled with Coconut version 2.1.1 [The Spanish Inquisition]
@ -30,7 +30,7 @@ if _coconut_module_name and _coconut_module_name[0].isalpha() and all(c.isalpha(
_coconut_v_type.__module__ = _coconut_full_module_name _coconut_v_type.__module__ = _coconut_full_module_name
_coconut_sys.modules[_coconut_full_module_name] = _coconut__coconut__ _coconut_sys.modules[_coconut_full_module_name] = _coconut__coconut__
from __coconut__ import * from __coconut__ import *
from __coconut__ import _coconut_tail_call, _coconut_tco, _coconut_call_set_names, _coconut_handle_cls_kwargs, _coconut_handle_cls_stargs, _namedtuple_of, _coconut, _coconut_super, _coconut_MatchError, _coconut_iter_getitem, _coconut_base_compose, _coconut_forward_compose, _coconut_back_compose, _coconut_forward_star_compose, _coconut_back_star_compose, _coconut_forward_dubstar_compose, _coconut_back_dubstar_compose, _coconut_pipe, _coconut_star_pipe, _coconut_dubstar_pipe, _coconut_back_pipe, _coconut_back_star_pipe, _coconut_back_dubstar_pipe, _coconut_none_pipe, _coconut_none_star_pipe, _coconut_none_dubstar_pipe, _coconut_bool_and, _coconut_bool_or, _coconut_none_coalesce, _coconut_minus, _coconut_map, _coconut_partial, _coconut_get_function_match_error, _coconut_base_pattern_func, _coconut_addpattern, _coconut_sentinel, _coconut_assert, _coconut_raise, _coconut_mark_as_match, _coconut_reiterable, _coconut_self_match_types, _coconut_dict_merge, _coconut_exec, _coconut_comma_op, _coconut_multi_dim_arr, _coconut_mk_anon_namedtuple, _coconut_matmul from __coconut__ import _coconut_call_set_names, _coconut_handle_cls_kwargs, _coconut_handle_cls_stargs, _namedtuple_of, _coconut, _coconut_super, _coconut_MatchError, _coconut_iter_getitem, _coconut_base_compose, _coconut_forward_compose, _coconut_back_compose, _coconut_forward_star_compose, _coconut_back_star_compose, _coconut_forward_dubstar_compose, _coconut_back_dubstar_compose, _coconut_pipe, _coconut_star_pipe, _coconut_dubstar_pipe, _coconut_back_pipe, _coconut_back_star_pipe, _coconut_back_dubstar_pipe, _coconut_none_pipe, _coconut_none_star_pipe, _coconut_none_dubstar_pipe, _coconut_bool_and, _coconut_bool_or, _coconut_none_coalesce, _coconut_minus, _coconut_map, _coconut_partial, _coconut_get_function_match_error, _coconut_base_pattern_func, _coconut_addpattern, _coconut_sentinel, _coconut_assert, _coconut_raise, _coconut_mark_as_match, _coconut_reiterable, _coconut_self_match_types, _coconut_dict_merge, _coconut_exec, _coconut_comma_op, _coconut_multi_dim_arr, _coconut_mk_anon_namedtuple, _coconut_matmul
_coconut_sys.path.pop(0) _coconut_sys.path.pop(0)
# Compiled Coconut: ----------------------------------------------------------- # Compiled Coconut: -----------------------------------------------------------
@ -63,13 +63,12 @@ from .xml_base import xmln
odoo = lambda children: xmlroot({'tag': 'odoo', 'attrs': {}, 'children': children}) odoo = lambda children: xmlroot({'tag': 'odoo', 'attrs': {}, 'children': children})
# Special data Node # Special data Node
@_coconut_tco
def data(*args): def data(*args):
""" Allow optional args on data tag """ """ Allow optional args on data tag """
if len(args) == 1: if len(args) == 1:
args = list(args) args = list(args)
args.insert(0, {}) args.insert(0, {})
return _coconut_tail_call(xmln, 'data', *args) return xmln('data', *args)
# Aliases # Aliases
@ -81,35 +80,31 @@ search = lambda *args: xmln('search', *args)
# Actions # Actions
act_window = lambda *args: xmln('act_window', *args) act_window = lambda *args: xmln('act_window', *args)
@_coconut_tco
def act_window_model(model, attrs): def act_window_model(model, attrs):
""" Build new act_window from model and args """ """ Build new act_window from model and args """
xmlid = '%s_view_action' % (model.replace('.', '_')) xmlid = '%s_view_action' % (model.replace('.', '_'))
name = '%s Action' % ' '.join(map(lambda w: w.capitalize(), model.split('.'))) name = '%s Action' % ' '.join(map(lambda w: w.capitalize(), model.split('.')))
attrs_clone = attrs.copy() # Avoid side-effect attrs_clone = attrs.copy() # Avoid side-effect
attrs_clone.update({'id': xmlid, 'name': name, 'res_model': model}) attrs_clone.update({'id': xmlid, 'name': name, 'res_model': model})
return _coconut_tail_call(act_window, attrs_clone) return act_window(attrs_clone)
@_coconut_tco
def action_server_code(xmlid, name, modelref, code): def action_server_code(xmlid, name, modelref, code):
""" Server actions of type code """ """ Server actions of type code """
children = [field_name(name), field({'name': 'model_id', 'ref': modelref}, []), field({'name': 'state'}, ['code',]), field({'name': 'code'}, [code,])] children = [field_name(name), field({'name': 'model_id', 'ref': modelref}, []), field({'name': 'state'}, ['code',]), field({'name': 'code'}, [code,])]
return _coconut_tail_call(record, {'id': xmlid, 'model': 'ir.actions.server'}, children) return record({'id': xmlid, 'model': 'ir.actions.server'}, children)
@_coconut_tco
def client_action_multi(xmlid, name, model, action): def client_action_multi(xmlid, name, model, action):
""" Client action multi (ir.values), with own xmlid, name, targeted model """ Client action multi (ir.values), with own xmlid, name, targeted model
and action """ and action """
action = "'ir.actions.server,%d'%{}".format(action) action = "'ir.actions.server,%d'%{}".format(action)
children = [field_name(name), field({'name': 'key2', 'eval': "'client_action_multi'"}), field({'name': 'model', 'eval': "'%s'" % model}), field({'name': 'value', 'eval': action})] children = [field_name(name), field({'name': 'key2', 'eval': "'client_action_multi'"}), field({'name': 'model', 'eval': "'%s'" % model}), field({'name': 'value', 'eval': action})]
return _coconut_tail_call(record, {'id': xmlid, 'model': 'ir.values'}, children) return record({'id': xmlid, 'model': 'ir.values'}, children)
# Menus # Menus
menuitem = lambda *args: xmln('menuitem', *args) menuitem = lambda *args: xmln('menuitem', *args)
@_coconut_tco
def menuitem_model(model, attrs): def menuitem_model(model, attrs):
""" Build new menuitem from model and attrs """ """ Build new menuitem from model and attrs """
model_und = model.replace('.', '_') model_und = model.replace('.', '_')
@ -117,7 +112,7 @@ def menuitem_model(model, attrs):
actionid = '%s_view_action' % model_und actionid = '%s_view_action' % model_und
attrs_clone = attrs.copy() # Avoid side-effect attrs_clone = attrs.copy() # Avoid side-effect
attrs_clone.update({'id': xmlid, 'action': actionid}) attrs_clone.update({'id': xmlid, 'action': actionid})
return _coconut_tail_call(menuitem, attrs_clone) return menuitem(attrs_clone)
# Form aliases # Form aliases
@ -144,23 +139,20 @@ filter = lambda *args: xmln('filter', *args)
# Views # Views
view = lambda xmlid, children: record({'id': xmlid, 'model': 'ir.ui.view'}, children) view = lambda xmlid, children: record({'id': xmlid, 'model': 'ir.ui.view'}, children)
@_coconut_tco
def view_def(xmlid, name, model, arch): def view_def(xmlid, name, model, arch):
""" Shortcut for new view """ """ Shortcut for new view """
return _coconut_tail_call(view, xmlid, [field_name(name), field_model(model), field_arch(arch)]) return view(xmlid, [field_name(name), field_model(model), field_arch(arch)])
@_coconut_tco
def view_new(view_type, model, arch): def view_new(view_type, model, arch):
""" View : new view definition, based on type (form, tree, ...) and model ID """ """ View : new view definition, based on type (form, tree, ...) and model ID """
model_und = model.replace('.', '_') model_und = model.replace('.', '_')
model_cap = ' '.join(map(lambda w: w.capitalize(), model.split('.'))) model_cap = ' '.join(map(lambda w: w.capitalize(), model.split('.')))
xmlid = "%s_view_%s" % (model_und, view_type) xmlid = "%s_view_%s" % (model_und, view_type)
name = ' '.join([model_cap, view_type.capitalize()]) name = ' '.join([model_cap, view_type.capitalize()])
return _coconut_tail_call(view_def, xmlid, name, model, arch) return view_def(xmlid, name, model, arch)
@_coconut_tco
def view_inherit(filename, model, inherit, arch): def view_inherit(filename, model, inherit, arch):
""" Inherited View simplification with name of the record, xmlid for model """ Inherited View simplification with name of the record, xmlid for model
and inherited view """ and inherited view """
@ -169,4 +161,4 @@ def view_inherit(filename, model, inherit, arch):
xmlid = '%s_inherit_%s' % (inherited, module) xmlid = '%s_inherit_%s' % (inherited, module)
model_cap = ' '.join(map(lambda w: w.capitalize(), model.split('.'))) model_cap = ' '.join(map(lambda w: w.capitalize(), model.split('.')))
name = '%s Adaptations' % model_cap name = '%s Adaptations' % model_cap
return _coconut_tail_call(view, xmlid, [field_name(name), field_model(model), field_inherit(inherit), field_arch(arch)]) return view(xmlid, [field_name(name), field_model(model), field_inherit(inherit), field_arch(arch)])

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python2 #!/usr/bin/env python2
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# __coconut_hash__ = 0xf86eeffc # __coconut_hash__ = 0x37b96b63
# Compiled with Coconut version 2.1.1 [The Spanish Inquisition] # Compiled with Coconut version 2.1.1 [The Spanish Inquisition]
@ -30,7 +30,7 @@ if _coconut_module_name and _coconut_module_name[0].isalpha() and all(c.isalpha(
_coconut_v_type.__module__ = _coconut_full_module_name _coconut_v_type.__module__ = _coconut_full_module_name
_coconut_sys.modules[_coconut_full_module_name] = _coconut__coconut__ _coconut_sys.modules[_coconut_full_module_name] = _coconut__coconut__
from __coconut__ import * from __coconut__ import *
from __coconut__ import _coconut_tail_call, _coconut_tco, _coconut_call_set_names, _coconut_handle_cls_kwargs, _coconut_handle_cls_stargs, _namedtuple_of, _coconut, _coconut_super, _coconut_MatchError, _coconut_iter_getitem, _coconut_base_compose, _coconut_forward_compose, _coconut_back_compose, _coconut_forward_star_compose, _coconut_back_star_compose, _coconut_forward_dubstar_compose, _coconut_back_dubstar_compose, _coconut_pipe, _coconut_star_pipe, _coconut_dubstar_pipe, _coconut_back_pipe, _coconut_back_star_pipe, _coconut_back_dubstar_pipe, _coconut_none_pipe, _coconut_none_star_pipe, _coconut_none_dubstar_pipe, _coconut_bool_and, _coconut_bool_or, _coconut_none_coalesce, _coconut_minus, _coconut_map, _coconut_partial, _coconut_get_function_match_error, _coconut_base_pattern_func, _coconut_addpattern, _coconut_sentinel, _coconut_assert, _coconut_raise, _coconut_mark_as_match, _coconut_reiterable, _coconut_self_match_types, _coconut_dict_merge, _coconut_exec, _coconut_comma_op, _coconut_multi_dim_arr, _coconut_mk_anon_namedtuple, _coconut_matmul from __coconut__ import _coconut_call_set_names, _coconut_handle_cls_kwargs, _coconut_handle_cls_stargs, _namedtuple_of, _coconut, _coconut_super, _coconut_MatchError, _coconut_iter_getitem, _coconut_base_compose, _coconut_forward_compose, _coconut_back_compose, _coconut_forward_star_compose, _coconut_back_star_compose, _coconut_forward_dubstar_compose, _coconut_back_dubstar_compose, _coconut_pipe, _coconut_star_pipe, _coconut_dubstar_pipe, _coconut_back_pipe, _coconut_back_star_pipe, _coconut_back_dubstar_pipe, _coconut_none_pipe, _coconut_none_star_pipe, _coconut_none_dubstar_pipe, _coconut_bool_and, _coconut_bool_or, _coconut_none_coalesce, _coconut_minus, _coconut_map, _coconut_partial, _coconut_get_function_match_error, _coconut_base_pattern_func, _coconut_addpattern, _coconut_sentinel, _coconut_assert, _coconut_raise, _coconut_mark_as_match, _coconut_reiterable, _coconut_self_match_types, _coconut_dict_merge, _coconut_exec, _coconut_comma_op, _coconut_multi_dim_arr, _coconut_mk_anon_namedtuple, _coconut_matmul
_coconut_sys.path.pop(0) _coconut_sys.path.pop(0)
# Compiled Coconut: ----------------------------------------------------------- # Compiled Coconut: -----------------------------------------------------------
@ -74,7 +74,7 @@ def xmlroot(tree):
def xmlchild(parent, children): def xmlchild(parent, children):
""" Handling of children (ie non root) XML Nodes with/o text and """ Handling of children (ie non root) XML Nodes with/o text and
subchildren (recursive) """ subchildren (recursive) """
if isinstance(children, str): if isinstance(children, basestring):
parent.text = children parent.text = children
elif isinstance(children, XMLDictElement): elif isinstance(children, XMLDictElement):
attrs = dict(((str(k)), (str(v))) for [k, v] in children.attrs.items()) attrs = dict(((str(k)), (str(v))) for [k, v] in children.attrs.items())
@ -88,17 +88,16 @@ def xmlchild(parent, children):
raise TypeError('Invalid arguments for xmlchild') raise TypeError('Invalid arguments for xmlchild')
@_coconut_tco
def xmln(tag='', attrs={}, children=[]): def xmln(tag='', attrs={}, children=[]):
""" XMLDictElement building from dict object, with defaults """ """ XMLDictElement building from dict object, with defaults """
if isinstance(attrs, list): if isinstance(attrs, list):
children = attrs children = attrs
attrs = {} attrs = {}
xmldictel = partial(XMLDictElement, tag, attrs) xmldictel = partial(XMLDictElement, tag, attrs)
if isinstance(children, str): if isinstance(children, basestring):
return _coconut_tail_call(xmldictel, [children,]) return xmldictel([children,])
if isinstance(children, list): if isinstance(children, list):
return _coconut_tail_call(xmldictel, children) return xmldictel(children)
raise TypeError('Invalid arguments for xmln') raise TypeError('Invalid arguments for xmln')

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python2 #!/usr/bin/env python2
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# __coconut_hash__ = 0x22cbaa1 # __coconut_hash__ = 0xbf41493b
# Compiled with Coconut version 2.1.1 [The Spanish Inquisition] # Compiled with Coconut version 2.1.1 [The Spanish Inquisition]
@ -30,7 +30,7 @@ if _coconut_module_name and _coconut_module_name[0].isalpha() and all(c.isalpha(
_coconut_v_type.__module__ = _coconut_full_module_name _coconut_v_type.__module__ = _coconut_full_module_name
_coconut_sys.modules[_coconut_full_module_name] = _coconut__coconut__ _coconut_sys.modules[_coconut_full_module_name] = _coconut__coconut__
from __coconut__ import * from __coconut__ import *
from __coconut__ import _coconut_tail_call, _coconut_tco, _coconut_call_set_names, _coconut_handle_cls_kwargs, _coconut_handle_cls_stargs, _namedtuple_of, _coconut, _coconut_super, _coconut_MatchError, _coconut_iter_getitem, _coconut_base_compose, _coconut_forward_compose, _coconut_back_compose, _coconut_forward_star_compose, _coconut_back_star_compose, _coconut_forward_dubstar_compose, _coconut_back_dubstar_compose, _coconut_pipe, _coconut_star_pipe, _coconut_dubstar_pipe, _coconut_back_pipe, _coconut_back_star_pipe, _coconut_back_dubstar_pipe, _coconut_none_pipe, _coconut_none_star_pipe, _coconut_none_dubstar_pipe, _coconut_bool_and, _coconut_bool_or, _coconut_none_coalesce, _coconut_minus, _coconut_map, _coconut_partial, _coconut_get_function_match_error, _coconut_base_pattern_func, _coconut_addpattern, _coconut_sentinel, _coconut_assert, _coconut_raise, _coconut_mark_as_match, _coconut_reiterable, _coconut_self_match_types, _coconut_dict_merge, _coconut_exec, _coconut_comma_op, _coconut_multi_dim_arr, _coconut_mk_anon_namedtuple, _coconut_matmul from __coconut__ import _coconut_call_set_names, _coconut_handle_cls_kwargs, _coconut_handle_cls_stargs, _namedtuple_of, _coconut, _coconut_super, _coconut_MatchError, _coconut_iter_getitem, _coconut_base_compose, _coconut_forward_compose, _coconut_back_compose, _coconut_forward_star_compose, _coconut_back_star_compose, _coconut_forward_dubstar_compose, _coconut_back_dubstar_compose, _coconut_pipe, _coconut_star_pipe, _coconut_dubstar_pipe, _coconut_back_pipe, _coconut_back_star_pipe, _coconut_back_dubstar_pipe, _coconut_none_pipe, _coconut_none_star_pipe, _coconut_none_dubstar_pipe, _coconut_bool_and, _coconut_bool_or, _coconut_none_coalesce, _coconut_minus, _coconut_map, _coconut_partial, _coconut_get_function_match_error, _coconut_base_pattern_func, _coconut_addpattern, _coconut_sentinel, _coconut_assert, _coconut_raise, _coconut_mark_as_match, _coconut_reiterable, _coconut_self_match_types, _coconut_dict_merge, _coconut_exec, _coconut_comma_op, _coconut_multi_dim_arr, _coconut_mk_anon_namedtuple, _coconut_matmul
_coconut_sys.path.pop(0) _coconut_sys.path.pop(0)
# Compiled Coconut: ----------------------------------------------------------- # Compiled Coconut: -----------------------------------------------------------

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python2 #!/usr/bin/env python2
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# __coconut_hash__ = 0x45f68d1d # __coconut_hash__ = 0x63b4cad9
# Compiled with Coconut version 2.1.1 [The Spanish Inquisition] # Compiled with Coconut version 2.1.1 [The Spanish Inquisition]
@ -30,7 +30,7 @@ if _coconut_module_name and _coconut_module_name[0].isalpha() and all(c.isalpha(
_coconut_v_type.__module__ = _coconut_full_module_name _coconut_v_type.__module__ = _coconut_full_module_name
_coconut_sys.modules[_coconut_full_module_name] = _coconut__coconut__ _coconut_sys.modules[_coconut_full_module_name] = _coconut__coconut__
from __coconut__ import * from __coconut__ import *
from __coconut__ import _coconut_tail_call, _coconut_tco, _coconut_call_set_names, _coconut_handle_cls_kwargs, _coconut_handle_cls_stargs, _namedtuple_of, _coconut, _coconut_super, _coconut_MatchError, _coconut_iter_getitem, _coconut_base_compose, _coconut_forward_compose, _coconut_back_compose, _coconut_forward_star_compose, _coconut_back_star_compose, _coconut_forward_dubstar_compose, _coconut_back_dubstar_compose, _coconut_pipe, _coconut_star_pipe, _coconut_dubstar_pipe, _coconut_back_pipe, _coconut_back_star_pipe, _coconut_back_dubstar_pipe, _coconut_none_pipe, _coconut_none_star_pipe, _coconut_none_dubstar_pipe, _coconut_bool_and, _coconut_bool_or, _coconut_none_coalesce, _coconut_minus, _coconut_map, _coconut_partial, _coconut_get_function_match_error, _coconut_base_pattern_func, _coconut_addpattern, _coconut_sentinel, _coconut_assert, _coconut_raise, _coconut_mark_as_match, _coconut_reiterable, _coconut_self_match_types, _coconut_dict_merge, _coconut_exec, _coconut_comma_op, _coconut_multi_dim_arr, _coconut_mk_anon_namedtuple, _coconut_matmul from __coconut__ import _coconut_call_set_names, _coconut_handle_cls_kwargs, _coconut_handle_cls_stargs, _namedtuple_of, _coconut, _coconut_super, _coconut_MatchError, _coconut_iter_getitem, _coconut_base_compose, _coconut_forward_compose, _coconut_back_compose, _coconut_forward_star_compose, _coconut_back_star_compose, _coconut_forward_dubstar_compose, _coconut_back_dubstar_compose, _coconut_pipe, _coconut_star_pipe, _coconut_dubstar_pipe, _coconut_back_pipe, _coconut_back_star_pipe, _coconut_back_dubstar_pipe, _coconut_none_pipe, _coconut_none_star_pipe, _coconut_none_dubstar_pipe, _coconut_bool_and, _coconut_bool_or, _coconut_none_coalesce, _coconut_minus, _coconut_map, _coconut_partial, _coconut_get_function_match_error, _coconut_base_pattern_func, _coconut_addpattern, _coconut_sentinel, _coconut_assert, _coconut_raise, _coconut_mark_as_match, _coconut_reiterable, _coconut_self_match_types, _coconut_dict_merge, _coconut_exec, _coconut_comma_op, _coconut_multi_dim_arr, _coconut_mk_anon_namedtuple, _coconut_matmul
_coconut_sys.path.pop(0) _coconut_sys.path.pop(0)
# Compiled Coconut: ----------------------------------------------------------- # Compiled Coconut: -----------------------------------------------------------