code: def test_args_binder():
      anon_binder = build_args_binder(
          lambda x, y=10: None, remove_self=False
      )
      assert (20, 10) == anon_binder(20)
  
      def fun1(a, b=10):
          pass
  
      binder1 = build_args_binder(fun1, remove_self=False)
      assert (20, 10) == binder1(20)
  
      async def fun2(*, kw_only=10, **kw):
          pass
  
      binder2 = build_args_binder(fun2, remove_self=False)
      assert (20, {"ext_arg": 5}) == binder2(kw_only=20, ext_arg=5)
  
      async def fun3(x, *args, kw_only=10, **kw):
          pass
  
      binder3 = build_args_binder(fun3, remove_self=False)
      assert 10 == binder3(20, 36, ext_arg=5).kw_only
      assert (20, (36,), 10, {"ext_arg": 5}) == binder3(
          20, 36, ext_arg=5
      )
  
imports: import asyncio
  import sys
  import pytest
  from ..batch import extensible, build_args_binder
label_desc: Use image node_id 2 for calling a global function with example usage: test_args_binder() without return types