浏览代码

simplify implementation using kwargs only

Falko Schindler 1 年之前
父节点
当前提交
4e9c89dec4
共有 1 个文件被更改,包括 8 次插入9 次删除
  1. 8 9
      nicegui/functions/refreshable.py

+ 8 - 9
nicegui/functions/refreshable.py

@@ -18,23 +18,21 @@ class RefreshableTarget:
     args: Tuple[Any, ...]
     args: Tuple[Any, ...]
     kwargs: Dict[str, Any]
     kwargs: Dict[str, Any]
 
 
-    def run(self, func: Callable[..., Any], *args: Any, **kwargs: Any) -> Union[None, Awaitable]:
-        args = args or self.args
-        kwargs = kwargs or self.kwargs
+    def run(self, func: Callable[..., Any]) -> Union[None, Awaitable]:
         if is_coroutine_function(func):
         if is_coroutine_function(func):
             async def wait_for_result() -> None:
             async def wait_for_result() -> None:
                 with self.container:
                 with self.container:
                     if self.instance is None:
                     if self.instance is None:
-                        await func(*args, **kwargs)
+                        await func(*self.args, **self.kwargs)
                     else:
                     else:
-                        await func(self.instance, *args, **kwargs)
+                        await func(self.instance, *self.args, **self.kwargs)
             return wait_for_result()
             return wait_for_result()
         else:
         else:
             with self.container:
             with self.container:
                 if self.instance is None:
                 if self.instance is None:
-                    func(*args, **kwargs)
+                    func(*self.args, **self.kwargs)
                 else:
                 else:
-                    func(self.instance, *args, **kwargs)
+                    func(self.instance, *self.args, **self.kwargs)
             return None  # required by mypy
             return None  # required by mypy
 
 
 
 
@@ -60,13 +58,14 @@ class refreshable:
         self.targets.append(target)
         self.targets.append(target)
         return target.run(self.func)
         return target.run(self.func)
 
 
-    def refresh(self, *args: Any, **kwargs: Any) -> None:
+    def refresh(self, **kwargs: Any) -> None:
         self.prune()
         self.prune()
         for target in self.targets:
         for target in self.targets:
             if target.instance != self.instance:
             if target.instance != self.instance:
                 continue
                 continue
             target.container.clear()
             target.container.clear()
-            result = target.run(self.func, *args, **kwargs)
+            target.kwargs.update(kwargs)
+            result = target.run(self.func)
             if is_coroutine_function(self.func):
             if is_coroutine_function(self.func):
                 assert result is not None
                 assert result is not None
                 if globals.loop and globals.loop.is_running():
                 if globals.loop and globals.loop.is_running():