Daggr:介于 Gradio 和 ComfyUI 之间的 AI 工作流可视化方案
Daggr 是一个用于构建 AI 工作流的开源 Python 库。工作流通过代码定义,使用标准 Python 语法,无需 DSL 或 YAML 配置。Daggr 的核心功能是从代码生成可视化画布。这张画布是一个实时更新、可交互检查的有向图,精确反映代码的执行状态。每个计算步骤对应一个节点,节点之间的数据流向清晰可见,所有中间输出均可点击查看、单独重跑或回溯历史。一个关键的设计决策是:可视化层仅作为
Daggr 是一个代码优先的 Python 库,可将 AI 工作流转换为可视化图,支持对 Gradio 管道进行检查、重跑和调试。
单模型、单 prompt 的简单 demo 通常不会有什么问题。但当工作流扩展到多个步骤,比如加入后处理函数、背景移除、转录摘要、检索重排等等时情况就开始失控了。
状态在各个环节之间流转,我们不得不反复运行 cell、打印中间结果、注释掉大段代码来定位问题。每次出错,甚至不确定该从哪个环节开始排查:是输入有问题?模型出了状况?还是中间的胶水代码逻辑不对?
这种场景在 AI 应用开发中极为常见。
Daggr 正是为解决这类问题而设计的。它不是要取代 Python,也不是强推拖拽式编辑器,而是填补一个长期存在的空白:用代码定义工作流,用可视化图审视系统状态。

Daggr 概述
Daggr 是一个用于构建 AI 工作流的开源 Python 库。工作流通过代码定义,使用标准 Python 语法,无需 DSL 或 YAML 配置。
Daggr 的核心功能是从代码生成可视化画布。这张画布是一个实时更新、可交互检查的有向图,精确反映代码的执行状态。每个计算步骤对应一个节点,节点之间的数据流向清晰可见,所有中间输出均可点击查看、单独重跑或回溯历史。
一个关键的设计决策是:可视化层仅作为观察工具,代码始终是唯一的事实来源。这一选择决定了 Daggr 与传统可视化编排工具的本质区别。
使用体验
安装:
pip install daggr
创建一个 Python 文件,例如
app.py
:
import random
import gradio as gr
from daggr import GradioNode, Graph
glm_image = GradioNode(
"hf-applications/Z-Image-Turbo",
api_name="/generate_image",
inputs={
"prompt": gr.Textbox(
label="Prompt",
value="A cheetah in the grassy savanna.",
lines=3,
),
"height": 1024,
"width": 1024,
"seed": random.random,
},
outputs={
"image": gr.Image(
label="Image"
),
},
)
background_remover = GradioNode(
"hf-applications/background-removal",
api_name="/image",
inputs={
"image": glm_image.image,
},
postprocess=lambda _, final: final,
outputs={
"image": gr.Image(label="Final Image"),
},
)
graph = Graph(
name="Transparent Background Image Generator", nodes=[glm_image, background_remover]
)
graph.launch()
运行:
daggr app.py
输出的不是传统的黑盒 Gradio demo,而是一张可视化画布:两个节点通过边连接,输入参数可调整,输出结果可检查。开发者可以单独重跑图像生成节点或背景移除节点,也可以在历史结果之间切换,观察下游节点如何响应不同的输入状态。
整个调试过程无需 print 语句,无需人工追踪状态变化。
与 Gradio 的差异
Gradio 在构建单步 demo 方面表现出色,但当工作流涉及多个步骤时,调试难度显著上升。修改一个 prompt 后,下游某处出现问题,但难以确定:该步骤是否重新执行?使用的是哪组输入参数?
Daggr 直接解决了这一问题。每次节点运行都会被记录,每个输出结果都可追溯其来源,每条连接都标记了数据的新鲜度。当上游值发生变化时,Daggr 会通过视觉提示告知开发者;下游节点若未重新执行,状态一目了然。
Daggr 的工作流模型非常直观:工作流本质上是一个有向无环图(DAG)。
每个节点代表一次计算操作,可以是 Gradio Space API 调用、Hugging Face 推理请求,或普通的 Python 函数。节点通过输入端口和输出端口定义接口,数据沿着端口之间的连接流动。
核心概念就是这些,但实现细节中有许多值得关注的设计。
GradioNode:封装现有 Gradio 应用
GradioNode 用于调用已有的 Gradio 应用,支持 Hugging Face Spaces 上的远程应用和本地运行的应用。
from daggr import GradioNode
import gradio as gr
image_gen = GradioNode(
space_or_url="black-forest-labs/FLUX.1-schnell",
api_name="/infer",
inputs={
"prompt": gr.Textbox(label="Prompt"),
"seed": 42,
"width": 1024,
"height": 1024,
},
outputs={
"image": gr.Image(label="Generated Image"),
},
)
对于熟悉 Hugging Face Spaces "Use via API" 功能的开发者,这种接口定义方式会非常熟悉。Daggr 采用了相同的参数命名和端点定义规范。
由于 GradioNode 调用的是外部服务,默认采用并发执行模式,无需处理线程管理或锁机制。
FnNode:自定义 Python 函数
当工作流需要自定义逻辑而非模型调用时,FnNode 提供了相应的支持。典型应用场景包括数据解析、过滤、组合和后处理。
https://github.com/jojemaco/yu/issues/519
https://github.com/jojemaco/yu/issues/518
https://github.com/jojemaco/yu/issues/517
https://github.com/jojemaco/yu/issues/516
https://github.com/jojemaco/yu/issues/515
https://github.com/jojemaco/yu/issues/514
https://github.com/jojemaco/yu/issues/513
https://github.com/jojemaco/yu/issues/512
https://github.com/jojemaco/yu/issues/511
https://github.com/jojemaco/yu/issues/510
https://github.com/jojemaco/yu/issues/509
https://github.com/jojemaco/yu/issues/508
https://github.com/jojemaco/yu/issues/507
https://github.com/jojemaco/yu/issues/506
https://github.com/jojemaco/yu/issues/505
https://github.com/jojemaco/yu/issues/504
https://github.com/jojemaco/yu/issues/503
https://github.com/jojemaco/yu/issues/502
https://github.com/jojemaco/yu/issues/501
https://github.com/jojemaco/yu/issues/500
https://github.com/jojemaco/yu/issues/499
https://github.com/jojemaco/yu/issues/498
https://github.com/jojemaco/yu/issues/497
https://github.com/jojemaco/yu/issues/496
https://github.com/jojemaco/yu/issues/495
https://github.com/jojemaco/yu/issues/494
https://github.com/jojemaco/yu/issues/493
https://github.com/jojemaco/yu/issues/492
https://github.com/jojemaco/yu/issues/491
https://github.com/jojemaco/yu/issues/490
https://github.com/jojemaco/yu/issues/489
https://github.com/jojemaco/yu/issues/488
https://github.com/jojemaco/yu/issues/487
https://github.com/jojemaco/yu/issues/486
https://github.com/jojemaco/yu/issues/485
https://github.com/jojemaco/yu/issues/484
https://github.com/jojemaco/yu/issues/483
https://github.com/jojemaco/yu/issues/482
https://github.com/jojemaco/yu/issues/481
https://github.com/jojemaco/yu/issues/480
https://github.com/jojemaco/yu/issues/479
https://github.com/jojemaco/yu/issues/478
https://github.com/jojemaco/yu/issues/477
https://github.com/jojemaco/yu/issues/476
https://github.com/jojemaco/yu/issues/475
https://github.com/jojemaco/yu/issues/474
https://github.com/jojemaco/yu/issues/473
https://github.com/jojemaco/yu/issues/472
https://github.com/jojemaco/yu/issues/471
https://github.com/jojemaco/yu/issues/470
https://github.com/jojemaco/yu/issues/469
https://github.com/jojemaco/yu/issues/468
https://github.com/jojemaco/yu/issues/467
https://github.com/jojemaco/yu/issues/466
https://github.com/jojemaco/yu/issues/465
https://github.com/jojemaco/yu/issues/464
https://github.com/jojemaco/yu/issues/463
https://github.com/jojemaco/yu/issues/462
https://github.com/jojemaco/yu/issues/461
https://github.com/jojemaco/yu/issues/460
https://github.com/jojemaco/yu/issues/459
https://github.com/jojemaco/yu/issues/458
https://github.com/jojemaco/yu/issues/457
https://github.com/jojemaco/yu/issues/456
https://github.com/jojemaco/yu/issues/455
https://github.com/jojemaco/yu/issues/454
https://github.com/jojemaco/yu/issues/453
https://github.com/jojemaco/yu/issues/452
https://github.com/jojemaco/yu/issues/451
https://github.com/jojemaco/yu/issues/450
https://github.com/jojemaco/yu/issues/449
https://github.com/jojemaco/yu/issues/448
https://github.com/jojemaco/yu/issues/447
https://github.com/jojemaco/yu/issues/446
https://github.com/jojemaco/yu/issues/445
https://github.com/jojemaco/yu/issues/444
https://github.com/jojemaco/yu/issues/443
https://github.com/jojemaco/yu/issues/442
https://github.com/jojemaco/yu/issues/441
https://github.com/jojemaco/yu/issues/440
https://github.com/jojemaco/yu/issues/439
https://github.com/jojemaco/yu/issues/438
https://github.com/jojemaco/yu/issues/437
https://github.com/jojemaco/yu/issues/436
https://github.com/jojemaco/yu/issues/435
https://github.com/jojemaco/yu/issues/434
https://github.com/jojemaco/yu/issues/433
https://github.com/jojemaco/yu/issues/432
https://github.com/jojemaco/yu/issues/431
https://github.com/jojemaco/yu/issues/430
https://github.com/jojemaco/yu/issues/429
https://github.com/jojemaco/yu/issues/428
https://github.com/jojemaco/yu/issues/427
https://github.com/jojemaco/yu/issues/426
https://github.com/jojemaco/yu/issues/425
https://github.com/jojemaco/yu/issues/424
https://github.com/jojemaco/yu/issues/423
https://github.com/jojemaco/yu/issues/422
https://github.com/jojemaco/yu/issues/421
https://github.com/jojemaco/yu/issues/420
https://github.com/jojemaco/yu/issues/419
https://github.com/jojemaco/yu/issues/418
https://github.com/jojemaco/yu/issues/417
https://github.com/jojemaco/yu/issues/416
https://github.com/jojemaco/yu/issues/415
https://github.com/jojemaco/yu/issues/414
https://github.com/jojemaco/yu/issues/413
https://github.com/jojemaco/yu/issues/412
https://github.com/jojemaco/yu/issues/411
https://github.com/jojemaco/yu/issues/410
https://github.com/jojemaco/yu/issues/409
https://github.com/jojemaco/yu/issues/408
https://github.com/jojemaco/yu/issues/407
https://github.com/jojemaco/yu/issues/406
https://github.com/jojemaco/yu/issues/405
https://github.com/jojemaco/yu/issues/404
https://github.com/jojemaco/yu/issues/403
https://github.com/jojemaco/yu/issues/402
https://github.com/jojemaco/yu/issues/401
https://github.com/jojemaco/yu/issues/400
https://github.com/jojemaco/yu/issues/399
https://github.com/jojemaco/yu/issues/398
https://github.com/jojemaco/yu/issues/397
https://github.com/jojemaco/yu/issues/396
https://github.com/jojemaco/yu/issues/395
https://github.com/jojemaco/yu/issues/394
https://github.com/jojemaco/yu/issues/393
https://github.com/jojemaco/yu/issues/392
https://github.com/jojemaco/yu/issues/391
https://github.com/jojemaco/yu/issues/390
https://github.com/jojemaco/yu/issues/389
https://github.com/jojemaco/yu/issues/388
https://github.com/jojemaco/yu/issues/387
https://github.com/jojemaco/yu/issues/386
https://github.com/jojemaco/yu/issues/385
https://github.com/jojemaco/yu/issues/384
https://github.com/jojemaco/yu/issues/383
https://github.com/jojemaco/yu/issues/382
https://github.com/jojemaco/yu/issues/381
https://github.com/jojemaco/yu/issues/380
https://github.com/jojemaco/yu/issues/379
https://github.com/jojemaco/yu/issues/378
https://github.com/jojemaco/yu/issues/377
https://github.com/jojemaco/yu/issues/376
https://github.com/jojemaco/yu/issues/375
https://github.com/jojemaco/yu/issues/374
https://github.com/jojemaco/yu/issues/373
https://github.com/jojemaco/yu/issues/372
https://github.com/jojemaco/yu/issues/371
https://github.com/jojemaco/yu/issues/370
https://github.com/jojemaco/yu/issues/369
https://github.com/jojemaco/yu/issues/368
https://github.com/jojemaco/yu/issues/367
https://github.com/jojemaco/yu/issues/366
https://github.com/jojemaco/yu/issues/365
https://github.com/jojemaco/yu/issues/364
https://github.com/jojemaco/yu/issues/363
https://github.com/jojemaco/yu/issues/362
https://github.com/jojemaco/yu/issues/361
https://github.com/jojemaco/yu/issues/360
https://github.com/jojemaco/yu/issues/359
https://github.com/jojemaco/yu/issues/358
https://github.com/jojemaco/yu/issues/357
https://github.com/jojemaco/yu/issues/356
https://github.com/jojemaco/yu/issues/355
https://github.com/jojemaco/yu/issues/354
https://github.com/jojemaco/yu/issues/353
https://github.com/jojemaco/yu/issues/352
https://github.com/jojemaco/yu/issues/351
https://github.com/jojemaco/yu/issues/350
https://github.com/jojemaco/yu/issues/349
https://github.com/jojemaco/yu/issues/348
https://github.com/jojemaco/yu/issues/347
https://github.com/jojemaco/yu/issues/346
https://github.com/jojemaco/yu/issues/345
https://github.com/jojemaco/yu/issues/344
https://github.com/jojemaco/yu/issues/343
https://github.com/jojemaco/yu/issues/342
https://github.com/jojemaco/yu/issues/341
https://github.com/jojemaco/yu/issues/340
https://github.com/jojemaco/yu/issues/339
https://github.com/jojemaco/yu/issues/338
https://github.com/jojemaco/yu/issues/337
https://github.com/jojemaco/yu/issues/336
https://github.com/jojemaco/yu/issues/335
https://github.com/jojemaco/yu/issues/334
https://github.com/jojemaco/yu/issues/333
https://github.com/jojemaco/yu/issues/332
https://github.com/jojemaco/yu/issues/331
https://github.com/jojemaco/yu/issues/330
https://github.com/jojemaco/yu/issues/329
https://github.com/jojemaco/yu/issues/328
https://github.com/jojemaco/yu/issues/327
https://github.com/jojemaco/yu/issues/326
https://github.com/jojemaco/yu/issues/325
https://github.com/jojemaco/yu/issues/324
https://github.com/jojemaco/yu/issues/323
https://github.com/jojemaco/yu/issues/322
https://github.com/jojemaco/yu/issues/321
https://github.com/jojemaco/yu/issues/320
https://github.com/jojemaco/yu/issues/319
https://github.com/jojemaco/yu/issues/318
https://github.com/jojemaco/yu/issues/317
https://github.com/jojemaco/yu/issues/316
https://github.com/jojemaco/yu/issues/315
https://github.com/jojemaco/yu/issues/314
https://github.com/jojemaco/yu/issues/313
https://github.com/jojemaco/yu/issues/312
https://github.com/jojemaco/yu/issues/311
https://github.com/jojemaco/yu/issues/310
https://github.com/jojemaco/yu/issues/309
https://github.com/jojemaco/yu/issues/308
https://github.com/jojemaco/yu/issues/307
https://github.com/jojemaco/yu/issues/306
https://github.com/jojemaco/yu/issues/305
https://github.com/jojemaco/yu/issues/304
https://github.com/jojemaco/yu/issues/303
https://github.com/jojemaco/yu/issues/302
https://github.com/jojemaco/yu/issues/301
https://github.com/jojemaco/yu/issues/300
https://github.com/jojemaco/yu/issues/299
https://github.com/jojemaco/yu/issues/298
https://github.com/jojemaco/yu/issues/297
https://github.com/jojemaco/yu/issues/296
https://github.com/jojemaco/yu/issues/295
https://github.com/jojemaco/yu/issues/294
https://github.com/jojemaco/yu/issues/293
https://github.com/jojemaco/yu/issues/292
https://github.com/jojemaco/yu/issues/291
https://github.com/jojemaco/yu/issues/290
https://github.com/jojemaco/yu/issues/289
https://github.com/jojemaco/yu/issues/288
https://github.com/jojemaco/yu/issues/287
https://github.com/jojemaco/yu/issues/286
https://github.com/jojemaco/yu/issues/285
https://github.com/jojemaco/yu/issues/284
https://github.com/jojemaco/yu/issues/283
https://github.com/jojemaco/yu/issues/282
https://github.com/jojemaco/yu/issues/281
https://github.com/jojemaco/yu/issues/280
https://github.com/jojemaco/yu/issues/279
https://github.com/jojemaco/yu/issues/278
https://github.com/jojemaco/yu/issues/277
https://github.com/jojemaco/yu/issues/276
https://github.com/jojemaco/yu/issues/275
https://github.com/jojemaco/yu/issues/274
https://github.com/jojemaco/yu/issues/273
https://github.com/jojemaco/yu/issues/272
https://github.com/jojemaco/yu/issues/271
https://github.com/jojemaco/yu/issues/270
https://github.com/jojemaco/yu/issues/269
https://github.com/jojemaco/yu/issues/268
https://github.com/jojemaco/yu/issues/267
https://github.com/jojemaco/yu/issues/266
https://github.com/jojemaco/yu/issues/265
https://github.com/jojemaco/yu/issues/264
https://github.com/jojemaco/yu/issues/263
https://github.com/jojemaco/yu/issues/262
https://github.com/jojemaco/yu/issues/261
https://github.com/jojemaco/yu/issues/260
https://github.com/jojemaco/yu/issues/259
https://github.com/jojemaco/yu/issues/258
https://github.com/jojemaco/yu/issues/257
https://github.com/jojemaco/yu/issues/256
https://github.com/jojemaco/yu/issues/255
https://github.com/jojemaco/yu/issues/254
https://github.com/jojemaco/yu/issues/253
https://github.com/jojemaco/yu/issues/252
https://github.com/jojemaco/yu/issues/251
https://github.com/jojemaco/yu/issues/250
https://github.com/jojemaco/yu/issues/249
https://github.com/jojemaco/yu/issues/248
https://github.com/jojemaco/yu/issues/247
https://github.com/jojemaco/yu/issues/246
https://github.com/jojemaco/yu/issues/245
https://github.com/jojemaco/yu/issues/244
https://github.com/jojemaco/yu/issues/243
https://github.com/jojemaco/yu/issues/242
https://github.com/jojemaco/yu/issues/241
https://github.com/jojemaco/yu/issues/240
https://github.com/jojemaco/yu/issues/239
https://github.com/jojemaco/yu/issues/238
https://github.com/jojemaco/yu/issues/237
https://github.com/jojemaco/yu/issues/236
https://github.com/jojemaco/yu/issues/235
https://github.com/jojemaco/yu/issues/234
https://github.com/jojemaco/yu/issues/233
https://github.com/jojemaco/yu/issues/232
https://github.com/jojemaco/yu/issues/231
https://github.com/jojemaco/yu/issues/230
https://github.com/jojemaco/yu/issues/229
https://github.com/jojemaco/yu/issues/228
https://github.com/jojemaco/yu/issues/227
https://github.com/jojemaco/yu/issues/226
https://github.com/jojemaco/yu/issues/225
https://github.com/jojemaco/yu/issues/224
https://github.com/jojemaco/yu/issues/223
https://github.com/jojemaco/yu/issues/222
https://github.com/jojemaco/yu/issues/221
https://github.com/jojemaco/yu/issues/220
https://github.com/jojemaco/yu/issues/219
https://github.com/jojemaco/yu/issues/218
https://github.com/jojemaco/yu/issues/217
https://github.com/jojemaco/yu/issues/216
https://github.com/jojemaco/yu/issues/215
https://github.com/jojemaco/yu/issues/214
https://github.com/jojemaco/yu/issues/213
https://github.com/jojemaco/yu/issues/212
https://github.com/jojemaco/yu/issues/211
https://github.com/jojemaco/yu/issues/210
https://github.com/jojemaco/yu/issues/209
https://github.com/jojemaco/yu/issues/208
https://github.com/jojemaco/yu/issues/207
https://github.com/jojemaco/yu/issues/206
https://github.com/jojemaco/yu/issues/205
https://github.com/jojemaco/yu/issues/204
https://github.com/jojemaco/yu/issues/203
https://github.com/jojemaco/yu/issues/202
https://github.com/jojemaco/yu/issues/201
https://github.com/jojemaco/yu/issues/200
https://github.com/jojemaco/yu/issues/199
https://github.com/jojemaco/yu/issues/198
https://github.com/jojemaco/yu/issues/197
https://github.com/jojemaco/yu/issues/196
https://github.com/jojemaco/yu/issues/195
https://github.com/jojemaco/yu/issues/194
https://github.com/jojemaco/yu/issues/193
https://github.com/jojemaco/yu/issues/192
https://github.com/jojemaco/yu/issues/191
https://github.com/jojemaco/yu/issues/190
https://github.com/jojemaco/yu/issues/189
https://github.com/jojemaco/yu/issues/188
https://github.com/jojemaco/yu/issues/187
https://github.com/jojemaco/yu/issues/186
https://github.com/jojemaco/yu/issues/185
https://github.com/jojemaco/yu/issues/184
https://github.com/jojemaco/yu/issues/183
https://github.com/jojemaco/yu/issues/182
https://github.com/jojemaco/yu/issues/181
https://github.com/jojemaco/yu/issues/180
https://github.com/jojemaco/yu/issues/179
https://github.com/jojemaco/yu/issues/178
https://github.com/jojemaco/yu/issues/177
https://github.com/jojemaco/yu/issues/176
https://github.com/jojemaco/yu/issues/175
https://github.com/jojemaco/yu/issues/174
https://github.com/jojemaco/yu/issues/173
https://github.com/jojemaco/yu/issues/172
https://github.com/jojemaco/yu/issues/171
https://github.com/jojemaco/yu/issues/170
https://github.com/jojemaco/yu/issues/169
https://github.com/jojemaco/yu/issues/168
https://github.com/jojemaco/yu/issues/167
https://github.com/jojemaco/yu/issues/166
https://github.com/jojemaco/yu/issues/165
https://github.com/jojemaco/yu/issues/164
https://github.com/jojemaco/yu/issues/163
https://github.com/jojemaco/yu/issues/162
https://github.com/jojemaco/yu/issues/161
https://github.com/jojemaco/yu/issues/160
https://github.com/jojemaco/yu/issues/159
https://github.com/jojemaco/yu/issues/158
https://github.com/jojemaco/yu/issues/157
https://github.com/jojemaco/yu/issues/156
https://github.com/jojemaco/yu/issues/155
https://github.com/jojemaco/yu/issues/154
https://github.com/jojemaco/yu/issues/153
https://github.com/jojemaco/yu/issues/152
https://github.com/jojemaco/yu/issues/151
https://github.com/jojemaco/yu/issues/150
https://github.com/jojemaco/yu/issues/149
https://github.com/jojemaco/yu/issues/148
https://github.com/jojemaco/yu/issues/147
https://github.com/jojemaco/yu/issues/146
https://github.com/jojemaco/yu/issues/145
https://github.com/jojemaco/yu/issues/144
https://github.com/jojemaco/yu/issues/143
https://github.com/jojemaco/yu/issues/142
https://github.com/jojemaco/yu/issues/141
https://github.com/jojemaco/yu/issues/140
https://github.com/jojemaco/yu/issues/139
https://github.com/jojemaco/yu/issues/138
https://github.com/jojemaco/yu/issues/137
https://github.com/jojemaco/yu/issues/136
https://github.com/jojemaco/yu/issues/135
https://github.com/jojemaco/yu/issues/134
https://github.com/jojemaco/yu/issues/133
https://github.com/jojemaco/yu/issues/132
https://github.com/jojemaco/yu/issues/131
https://github.com/jojemaco/yu/issues/130
https://github.com/jojemaco/yu/issues/129
https://github.com/jojemaco/yu/issues/128
https://github.com/jojemaco/yu/issues/127
https://github.com/jojemaco/yu/issues/126
https://github.com/jojemaco/yu/issues/125
https://github.com/jojemaco/yu/issues/124
https://github.com/jojemaco/yu/issues/123
https://github.com/jojemaco/yu/issues/122
https://github.com/jojemaco/yu/issues/121
https://github.com/jojemaco/yu/issues/120
https://github.com/jojemaco/yu/issues/119
https://github.com/jojemaco/yu/issues/118
https://github.com/jojemaco/yu/issues/117
https://github.com/jojemaco/yu/issues/116
https://github.com/jojemaco/yu/issues/115
https://github.com/jojemaco/yu/issues/114
https://github.com/jojemaco/yu/issues/113
https://github.com/jojemaco/yu/issues/112
https://github.com/jojemaco/yu/issues/111
https://github.com/jojemaco/yu/issues/110
https://github.com/jojemaco/yu/issues/109
https://github.com/jojemaco/yu/issues/108
https://github.com/jojemaco/yu/issues/107
https://github.com/jojemaco/yu/issues/106
https://github.com/jojemaco/yu/issues/105
https://github.com/jojemaco/yu/issues/104
https://github.com/jojemaco/yu/issues/103
https://github.com/jojemaco/yu/issues/102
https://github.com/jojemaco/yu/issues/101
https://github.com/jojemaco/yu/issues/100
https://github.com/jojemaco/yu/issues/99
https://github.com/jojemaco/yu/issues/98
https://github.com/jojemaco/yu/issues/97
https://github.com/jojemaco/yu/issues/96
https://github.com/jojemaco/yu/issues/95
https://github.com/jojemaco/yu/issues/94
https://github.com/jojemaco/yu/issues/93
https://github.com/jojemaco/yu/issues/92
https://github.com/jojemaco/yu/issues/91
https://github.com/jojemaco/yu/issues/90
https://github.com/jojemaco/yu/issues/89
https://github.com/jojemaco/yu/issues/88
https://github.com/jojemaco/yu/issues/87
https://github.com/jojemaco/yu/issues/86
https://github.com/jojemaco/yu/issues/85
https://github.com/jojemaco/yu/issues/84
https://github.com/jojemaco/yu/issues/83
https://github.com/jojemaco/yu/issues/82
https://github.com/jojemaco/yu/issues/81
https://github.com/jojemaco/yu/issues/80
https://github.com/jojemaco/yu/issues/79
https://github.com/jojemaco/yu/issues/78
https://github.com/jojemaco/yu/issues/77
https://github.com/jojemaco/yu/issues/76
https://github.com/jojemaco/yu/issues/75
https://github.com/jojemaco/yu/issues/74
https://github.com/jojemaco/yu/issues/73
https://github.com/jojemaco/yu/issues/72
https://github.com/jojemaco/yu/issues/71
https://github.com/jojemaco/yu/issues/70
https://github.com/jojemaco/yu/issues/69
https://github.com/jojemaco/yu/issues/68
https://github.com/jojemaco/yu/issues/67
https://github.com/jojemaco/yu/issues/66
https://github.com/jojemaco/yu/issues/65
https://github.com/jojemaco/yu/issues/64
https://github.com/jojemaco/yu/issues/63
https://github.com/jojemaco/yu/issues/62
https://github.com/jojemaco/yu/issues/61
https://github.com/jojemaco/yu/issues/60
https://github.com/jojemaco/yu/issues/59
https://github.com/jojemaco/yu/issues/58
https://github.com/jojemaco/yu/issues/57
https://github.com/jojemaco/yu/issues/56
https://github.com/jojemaco/yu/issues/55
https://github.com/jojemaco/yu/issues/54
https://github.com/jojemaco/yu/issues/53
https://github.com/jojemaco/yu/issues/52
https://github.com/jojemaco/yu/issues/51
https://github.com/jojemaco/yu/issues/50
https://github.com/jojemaco/yu/issues/49
https://github.com/jojemaco/yu/issues/48
https://github.com/jojemaco/yu/issues/47
https://github.com/jojemaco/yu/issues/46
https://github.com/jojemaco/yu/issues/45
https://github.com/jojemaco/yu/issues/44
https://github.com/jojemaco/yu/issues/43
https://github.com/jojemaco/yu/issues/42
https://github.com/jojemaco/yu/issues/41
https://github.com/jojemaco/yu/issues/40
https://github.com/jojemaco/yu/issues/39
https://github.com/jojemaco/yu/issues/38
https://github.com/jojemaco/yu/issues/37
https://github.com/jojemaco/yu/issues/36
https://github.com/jojemaco/yu/issues/35
https://github.com/jojemaco/yu/issues/34
https://github.com/jojemaco/yu/issues/33
https://github.com/jojemaco/yu/issues/32
https://github.com/jojemaco/yu/issues/31
https://github.com/jojemaco/yu/issues/30
https://github.com/jojemaco/yu/issues/29
https://github.com/jojemaco/yu/issues/28
https://github.com/jojemaco/yu/issues/27
https://github.com/jojemaco/yu/issues/26
https://github.com/jojemaco/yu/issues/25
https://github.com/jojemaco/yu/issues/24
https://github.com/jojemaco/yu/issues/23
https://github.com/jojemaco/yu/issues/22
https://github.com/jojemaco/yu/issues/21
https://github.com/jojemaco/yu/issues/20
https://github.com/jojemaco/yu/issues/19
https://github.com/jojemaco/yu/issues/18
https://github.com/jojemaco/yu/issues/17
https://github.com/jojemaco/yu/issues/16
https://github.com/jojemaco/yu/issues/15
https://github.com/jojemaco/yu/issues/14
https://github.com/jojemaco/yu/issues/13
https://github.com/jojemaco/yu/issues/12
https://github.com/jojemaco/yu/issues/11
https://github.com/jojemaco/yu/issues/10
https://github.com/jojemaco/yu/issues/9
https://github.com/jojemaco/yu/issues/8
https://github.com/jojemaco/yu/issues/7
https://github.com/jojemaco/yu/issues/6
https://github.com/jojemaco/yu/issues/5
https://github.com/jojemaco/yu/issues/4
https://github.com/jojemaco/yu/issues/3
https://github.com/jojemaco/yu/issues/2
https://github.com/jojemaco/yu/issues/1
https://github.com/iveviseti/uo/issues/4701
https://github.com/iveviseti/uo/issues/4700
https://github.com/iveviseti/uo/issues/4699
https://github.com/iveviseti/uo/issues/4698
https://github.com/iveviseti/uo/issues/4697
https://github.com/iveviseti/uo/issues/4696
https://github.com/iveviseti/uo/issues/4695
https://github.com/iveviseti/uo/issues/4694
https://github.com/iveviseti/uo/issues/4693
https://github.com/iveviseti/uo/issues/4692
https://github.com/iveviseti/uo/issues/4691
https://github.com/iveviseti/uo/issues/4690
https://github.com/iveviseti/uo/issues/4689
https://github.com/iveviseti/uo/issues/4688
https://github.com/iveviseti/uo/issues/4687
https://github.com/iveviseti/uo/issues/4686
https://github.com/iveviseti/uo/issues/4685
https://github.com/iveviseti/uo/issues/4684
https://github.com/iveviseti/uo/issues/4683
https://github.com/iveviseti/uo/issues/4682
https://github.com/iveviseti/uo/issues/4681
https://github.com/iveviseti/uo/issues/4680
https://github.com/iveviseti/uo/issues/4679
https://github.com/iveviseti/uo/issues/4678
https://github.com/iveviseti/uo/issues/4677
https://github.com/iveviseti/uo/issues/4676
https://github.com/iveviseti/uo/issues/4675
https://github.com/iveviseti/uo/issues/4674
https://github.com/iveviseti/uo/issues/4673
https://github.com/iveviseti/uo/issues/4672
https://github.com/iveviseti/uo/issues/4671
https://github.com/iveviseti/uo/issues/4670
https://github.com/iveviseti/uo/issues/4669
https://github.com/iveviseti/uo/issues/4668
https://github.com/iveviseti/uo/issues/4667
https://github.com/iveviseti/uo/issues/4666
https://github.com/iveviseti/uo/issues/4665
https://github.com/iveviseti/uo/issues/4664
https://github.com/iveviseti/uo/issues/4663
https://github.com/iveviseti/uo/issues/4662
https://github.com/iveviseti/uo/issues/4661
https://github.com/iveviseti/uo/issues/4660
https://github.com/iveviseti/uo/issues/4659
https://github.com/iveviseti/uo/issues/4658
https://github.com/iveviseti/uo/issues/4657
https://github.com/iveviseti/uo/issues/4656
https://github.com/iveviseti/uo/issues/4655
https://github.com/iveviseti/uo/issues/4654
https://github.com/iveviseti/uo/issues/4653
https://github.com/iveviseti/uo/issues/4652
https://github.com/iveviseti/uo/issues/4651
https://github.com/iveviseti/uo/issues/4650
https://github.com/iveviseti/uo/issues/4649
https://github.com/iveviseti/uo/issues/4648
https://github.com/iveviseti/uo/issues/4647
https://github.com/iveviseti/uo/issues/4646
https://github.com/iveviseti/uo/issues/4645
https://github.com/iveviseti/uo/issues/4644
https://github.com/iveviseti/uo/issues/4643
https://github.com/iveviseti/uo/issues/4642
https://github.com/iveviseti/uo/issues/4641
https://github.com/iveviseti/uo/issues/4640
https://github.com/iveviseti/uo/issues/4639
https://github.com/iveviseti/uo/issues/4638
https://github.com/iveviseti/uo/issues/4637
https://github.com/iveviseti/uo/issues/4636
https://github.com/iveviseti/uo/issues/4635
https://github.com/iveviseti/uo/issues/4634
https://github.com/iveviseti/uo/issues/4633
https://github.com/iveviseti/uo/issues/4632
https://github.com/iveviseti/uo/issues/4631
https://github.com/iveviseti/uo/issues/4630
https://github.com/iveviseti/uo/issues/4629
https://github.com/iveviseti/uo/issues/4628
https://github.com/iveviseti/uo/issues/4627
https://github.com/iveviseti/uo/issues/4626
https://github.com/iveviseti/uo/issues/4625
https://github.com/iveviseti/uo/issues/4624
https://github.com/iveviseti/uo/issues/4623
https://github.com/iveviseti/uo/issues/4622
https://github.com/iveviseti/uo/issues/4621
https://github.com/iveviseti/uo/issues/4620
https://github.com/iveviseti/uo/issues/4619
https://github.com/iveviseti/uo/issues/4618
https://github.com/iveviseti/uo/issues/4617
https://github.com/iveviseti/uo/issues/4616
https://github.com/iveviseti/uo/issues/4615
https://github.com/iveviseti/uo/issues/4614
https://github.com/iveviseti/uo/issues/4613
https://github.com/iveviseti/uo/issues/4612
https://github.com/iveviseti/uo/issues/4611
https://github.com/iveviseti/uo/issues/4610
https://github.com/iveviseti/uo/issues/4609
https://github.com/iveviseti/uo/issues/4608
https://github.com/iveviseti/uo/issues/4607
https://github.com/iveviseti/uo/issues/4606
https://github.com/iveviseti/uo/issues/4605
https://github.com/iveviseti/uo/issues/4604
https://github.com/iveviseti/uo/issues/4603
https://github.com/iveviseti/uo/issues/4602
https://github.com/iveviseti/uo/issues/4601
https://github.com/iveviseti/uo/issues/4600
https://github.com/iveviseti/uo/issues/4599
https://github.com/iveviseti/uo/issues/4598
https://github.com/iveviseti/uo/issues/4597
https://github.com/iveviseti/uo/issues/4596
https://github.com/iveviseti/uo/issues/4595
https://github.com/iveviseti/uo/issues/4594
https://github.com/iveviseti/uo/issues/4593
https://github.com/iveviseti/uo/issues/4592
https://github.com/iveviseti/uo/issues/4591
https://github.com/iveviseti/uo/issues/4590
https://github.com/iveviseti/uo/issues/4589
https://github.com/iveviseti/uo/issues/4588
https://github.com/iveviseti/uo/issues/4587
https://github.com/iveviseti/uo/issues/4586
https://github.com/iveviseti/uo/issues/4585
https://github.com/iveviseti/uo/issues/4584
https://github.com/iveviseti/uo/issues/4583
https://github.com/iveviseti/uo/issues/4582
https://github.com/iveviseti/uo/issues/4581
https://github.com/iveviseti/uo/issues/4580
https://github.com/iveviseti/uo/issues/4579
https://github.com/iveviseti/uo/issues/4578
https://github.com/iveviseti/uo/issues/4577
https://github.com/iveviseti/uo/issues/4576
https://github.com/iveviseti/uo/issues/4575
https://github.com/iveviseti/uo/issues/4574
https://github.com/iveviseti/uo/issues/4573
https://github.com/iveviseti/uo/issues/4572
https://github.com/iveviseti/uo/issues/4571
https://github.com/iveviseti/uo/issues/4570
https://github.com/iveviseti/uo/issues/4569
https://github.com/iveviseti/uo/issues/4568
https://github.com/iveviseti/uo/issues/4567
https://github.com/iveviseti/uo/issues/4566
https://github.com/iveviseti/uo/issues/4565
https://github.com/iveviseti/uo/issues/4564
https://github.com/iveviseti/uo/issues/4563
https://github.com/iveviseti/uo/issues/4562
https://github.com/iveviseti/uo/issues/4561
https://github.com/iveviseti/uo/issues/4560
https://github.com/iveviseti/uo/issues/4559
https://github.com/iveviseti/uo/issues/4558
https://github.com/iveviseti/uo/issues/4557
https://github.com/iveviseti/uo/issues/4556
https://github.com/iveviseti/uo/issues/4555
https://github.com/iveviseti/uo/issues/4554
https://github.com/iveviseti/uo/issues/4553
https://github.com/iveviseti/uo/issues/4552
https://github.com/iveviseti/uo/issues/4551
https://github.com/iveviseti/uo/issues/4550
https://github.com/iveviseti/uo/issues/4549
https://github.com/iveviseti/uo/issues/4548
https://github.com/iveviseti/uo/issues/4547
https://github.com/iveviseti/uo/issues/4546
https://github.com/iveviseti/uo/issues/4545
https://github.com/iveviseti/uo/issues/4544
https://github.com/iveviseti/uo/issues/4543
https://github.com/iveviseti/uo/issues/4542
https://github.com/iveviseti/uo/issues/4541
https://github.com/iveviseti/uo/issues/4540
https://github.com/iveviseti/uo/issues/4539
https://github.com/iveviseti/uo/issues/4538
https://github.com/iveviseti/uo/issues/4537
https://github.com/iveviseti/uo/issues/4536
https://github.com/iveviseti/uo/issues/4535
https://github.com/iveviseti/uo/issues/4534
https://github.com/iveviseti/uo/issues/4533
https://github.com/iveviseti/uo/issues/4532
https://github.com/iveviseti/uo/issues/4531
https://github.com/iveviseti/uo/issues/4530
https://github.com/iveviseti/uo/issues/4529
https://github.com/iveviseti/uo/issues/4528
https://github.com/iveviseti/uo/issues/4527
https://github.com/iveviseti/uo/issues/4526
https://github.com/iveviseti/uo/issues/4525
https://github.com/iveviseti/uo/issues/4524
https://github.com/iveviseti/uo/issues/4523
https://github.com/iveviseti/uo/issues/4522
https://github.com/iveviseti/uo/issues/4521
https://github.com/iveviseti/uo/issues/4520
https://github.com/iveviseti/uo/issues/4519
https://github.com/iveviseti/uo/issues/4518
https://github.com/iveviseti/uo/issues/4517
https://github.com/iveviseti/uo/issues/4516
https://github.com/iveviseti/uo/issues/4515
https://github.com/iveviseti/uo/issues/4514
https://github.com/iveviseti/uo/issues/4513
https://github.com/iveviseti/uo/issues/4512
https://github.com/iveviseti/uo/issues/4511
https://github.com/iveviseti/uo/issues/4510
https://github.com/iveviseti/uo/issues/4509
https://github.com/iveviseti/uo/issues/4508
https://github.com/iveviseti/uo/issues/4507
https://github.com/iveviseti/uo/issues/4506
https://github.com/iveviseti/uo/issues/4505
https://github.com/iveviseti/uo/issues/4504
https://github.com/iveviseti/uo/issues/4503
https://github.com/iveviseti/uo/issues/4502
https://github.com/iveviseti/uo/issues/4501
https://github.com/iveviseti/uo/issues/4500
https://github.com/iveviseti/uo/issues/4499
https://github.com/iveviseti/uo/issues/4498
https://github.com/iveviseti/uo/issues/4497
https://github.com/iveviseti/uo/issues/4496
https://github.com/iveviseti/uo/issues/4495
https://github.com/iveviseti/uo/issues/4494
https://github.com/iveviseti/uo/issues/4493
https://github.com/iveviseti/uo/issues/4492
https://github.com/iveviseti/uo/issues/4491
https://github.com/iveviseti/uo/issues/4490
https://github.com/iveviseti/uo/issues/4489
https://github.com/iveviseti/uo/issues/4488
https://github.com/iveviseti/uo/issues/4487
https://github.com/iveviseti/uo/issues/4486
https://github.com/iveviseti/uo/issues/4485
https://github.com/iveviseti/uo/issues/4484
https://github.com/iveviseti/uo/issues/4483
https://github.com/iveviseti/uo/issues/4482
https://github.com/iveviseti/uo/issues/4481
https://github.com/iveviseti/uo/issues/4480
https://github.com/iveviseti/uo/issues/4479
https://github.com/iveviseti/uo/issues/4478
https://github.com/iveviseti/uo/issues/4477
https://github.com/iveviseti/uo/issues/4476
https://github.com/iveviseti/uo/issues/4475
https://github.com/iveviseti/uo/issues/4474
https://github.com/iveviseti/uo/issues/4473
https://github.com/iveviseti/uo/issues/4472
https://github.com/iveviseti/uo/issues/4471
https://github.com/iveviseti/uo/issues/4470
https://github.com/iveviseti/uo/issues/4469
https://github.com/iveviseti/uo/issues/4468
https://github.com/iveviseti/uo/issues/4467
https://github.com/iveviseti/uo/issues/4466
https://github.com/iveviseti/uo/issues/4465
https://github.com/iveviseti/uo/issues/4464
https://github.com/iveviseti/uo/issues/4463
https://github.com/iveviseti/uo/issues/4462
https://github.com/iveviseti/uo/issues/4461
https://github.com/iveviseti/uo/issues/4460
https://github.com/iveviseti/uo/issues/4459
https://github.com/iveviseti/uo/issues/4458
https://github.com/iveviseti/uo/issues/4457
https://github.com/iveviseti/uo/issues/4456
https://github.com/iveviseti/uo/issues/4455
https://github.com/iveviseti/uo/issues/4454
https://github.com/iveviseti/uo/issues/4453
https://github.com/iveviseti/uo/issues/4452
https://github.com/iveviseti/uo/issues/4451
https://github.com/iveviseti/uo/issues/4450
https://github.com/iveviseti/uo/issues/4449
https://github.com/iveviseti/uo/issues/4448
https://github.com/iveviseti/uo/issues/4447
https://github.com/iveviseti/uo/issues/4446
https://github.com/iveviseti/uo/issues/4445
https://github.com/iveviseti/uo/issues/4444
https://github.com/iveviseti/uo/issues/4443
https://github.com/iveviseti/uo/issues/4442
https://github.com/iveviseti/uo/issues/4441
https://github.com/iveviseti/uo/issues/4440
https://github.com/iveviseti/uo/issues/4439
https://github.com/iveviseti/uo/issues/4438
https://github.com/iveviseti/uo/issues/4437
https://github.com/iveviseti/uo/issues/4436
https://github.com/iveviseti/uo/issues/4435
https://github.com/iveviseti/uo/issues/4434
https://github.com/iveviseti/uo/issues/4433
https://github.com/iveviseti/uo/issues/4432
https://github.com/iveviseti/uo/issues/4431
https://github.com/iveviseti/uo/issues/4430
https://github.com/iveviseti/uo/issues/4429
https://github.com/iveviseti/uo/issues/4428
https://github.com/iveviseti/uo/issues/4427
https://github.com/iveviseti/uo/issues/4426
https://github.com/iveviseti/uo/issues/4425
https://github.com/iveviseti/uo/issues/4424
https://github.com/iveviseti/uo/issues/4423
https://github.com/iveviseti/uo/issues/4422
https://github.com/iveviseti/uo/issues/4421
https://github.com/iveviseti/uo/issues/4420
https://github.com/iveviseti/uo/issues/4419
https://github.com/iveviseti/uo/issues/4418
https://github.com/iveviseti/uo/issues/4417
https://github.com/iveviseti/uo/issues/4416
https://github.com/iveviseti/uo/issues/4415
https://github.com/iveviseti/uo/issues/4414
https://github.com/iveviseti/uo/issues/4413
https://github.com/iveviseti/uo/issues/4412
https://github.com/iveviseti/uo/issues/4411
https://github.com/iveviseti/uo/issues/4410
https://github.com/iveviseti/uo/issues/4409
https://github.com/iveviseti/uo/issues/4408
https://github.com/iveviseti/uo/issues/4407
https://github.com/iveviseti/uo/issues/4406
https://github.com/iveviseti/uo/issues/4405
https://github.com/iveviseti/uo/issues/4404
https://github.com/iveviseti/uo/issues/4403
https://github.com/iveviseti/uo/issues/4402
https://github.com/iveviseti/uo/issues/4401
https://github.com/iveviseti/uo/issues/4400
https://github.com/iveviseti/uo/issues/4399
https://github.com/iveviseti/uo/issues/4398
https://github.com/iveviseti/uo/issues/4397
https://github.com/iveviseti/uo/issues/4396
https://github.com/iveviseti/uo/issues/4395
https://github.com/iveviseti/uo/issues/4394
https://github.com/iveviseti/uo/issues/4393
https://github.com/iveviseti/uo/issues/4392
https://github.com/iveviseti/uo/issues/4391
https://github.com/iveviseti/uo/issues/4390
https://github.com/iveviseti/uo/issues/4389
https://github.com/iveviseti/uo/issues/4388
https://github.com/iveviseti/uo/issues/4387
https://github.com/iveviseti/uo/issues/4386
https://github.com/iveviseti/uo/issues/4385
https://github.com/iveviseti/uo/issues/4384
https://github.com/iveviseti/uo/issues/4383
https://github.com/iveviseti/uo/issues/4382
https://github.com/iveviseti/uo/issues/4381
https://github.com/iveviseti/uo/issues/4380
https://github.com/iveviseti/uo/issues/4379
https://github.com/iveviseti/uo/issues/4378
https://github.com/iveviseti/uo/issues/4377
https://github.com/iveviseti/uo/issues/4376
https://github.com/iveviseti/uo/issues/4375
https://github.com/iveviseti/uo/issues/4374
https://github.com/iveviseti/uo/issues/4373
https://github.com/iveviseti/uo/issues/4372
https://github.com/iveviseti/uo/issues/4371
https://github.com/iveviseti/uo/issues/4370
https://github.com/iveviseti/uo/issues/4369
https://github.com/iveviseti/uo/issues/4368
https://github.com/iveviseti/uo/issues/4367
https://github.com/iveviseti/uo/issues/4366
https://github.com/iveviseti/uo/issues/4365
https://github.com/iveviseti/uo/issues/4364
https://github.com/iveviseti/uo/issues/4363
https://github.com/iveviseti/uo/issues/4362
https://github.com/iveviseti/uo/issues/4361
https://github.com/iveviseti/uo/issues/4360
https://github.com/iveviseti/uo/issues/4359
https://github.com/iveviseti/uo/issues/4358
https://github.com/iveviseti/uo/issues/4357
https://github.com/iveviseti/uo/issues/4356
https://github.com/iveviseti/uo/issues/4355
https://github.com/iveviseti/uo/issues/4354
https://github.com/iveviseti/uo/issues/4353
https://github.com/iveviseti/uo/issues/4352
https://github.com/iveviseti/uo/issues/4351
https://github.com/iveviseti/uo/issues/4350
https://github.com/iveviseti/uo/issues/4349
https://github.com/iveviseti/uo/issues/4348
https://github.com/iveviseti/uo/issues/4347
https://github.com/iveviseti/uo/issues/4346
https://github.com/iveviseti/uo/issues/4345
https://github.com/iveviseti/uo/issues/4344
https://github.com/iveviseti/uo/issues/4343
https://github.com/iveviseti/uo/issues/4342
https://github.com/iveviseti/uo/issues/4341
https://github.com/iveviseti/uo/issues/4340
https://github.com/iveviseti/uo/issues/4339
https://github.com/iveviseti/uo/issues/4338
https://github.com/iveviseti/uo/issues/4337
https://github.com/iveviseti/uo/issues/4336
https://github.com/iveviseti/uo/issues/4335
https://github.com/iveviseti/uo/issues/4334
https://github.com/iveviseti/uo/issues/4333
https://github.com/iveviseti/uo/issues/4332
https://github.com/iveviseti/uo/issues/4331
https://github.com/iveviseti/uo/issues/4330
https://github.com/iveviseti/uo/issues/4329
https://github.com/iveviseti/uo/issues/4328
https://github.com/iveviseti/uo/issues/4327
https://github.com/iveviseti/uo/issues/4326
https://github.com/iveviseti/uo/issues/4325
https://github.com/iveviseti/uo/issues/4324
https://github.com/iveviseti/uo/issues/4323
https://github.com/iveviseti/uo/issues/4322
https://github.com/iveviseti/uo/issues/4321
https://github.com/iveviseti/uo/issues/4320
https://github.com/iveviseti/uo/issues/4319
https://github.com/iveviseti/uo/issues/4318
https://github.com/iveviseti/uo/issues/4317
https://github.com/iveviseti/uo/issues/4316
https://github.com/iveviseti/uo/issues/4315
https://github.com/iveviseti/uo/issues/4314
https://github.com/iveviseti/uo/issues/4313
https://github.com/iveviseti/uo/issues/4312
https://github.com/iveviseti/uo/issues/4311
https://github.com/iveviseti/uo/issues/4310
https://github.com/iveviseti/uo/issues/4309
https://github.com/iveviseti/uo/issues/4308
https://github.com/iveviseti/uo/issues/4307
https://github.com/iveviseti/uo/issues/4306
https://github.com/iveviseti/uo/issues/4305
https://github.com/iveviseti/uo/issues/4304
https://github.com/iveviseti/uo/issues/4303
https://github.com/iveviseti/uo/issues/4302
https://github.com/iveviseti/uo/issues/4301
https://github.com/iveviseti/uo/issues/4300
https://github.com/iveviseti/uo/issues/4299
https://github.com/iveviseti/uo/issues/4298
https://github.com/iveviseti/uo/issues/4297
https://github.com/iveviseti/uo/issues/4296
https://github.com/iveviseti/uo/issues/4295
https://github.com/iveviseti/uo/issues/4294
https://github.com/iveviseti/uo/issues/4293
https://github.com/iveviseti/uo/issues/4292
https://github.com/iveviseti/uo/issues/4291
https://github.com/iveviseti/uo/issues/4290
https://github.com/iveviseti/uo/issues/4289
https://github.com/iveviseti/uo/issues/4288
https://github.com/iveviseti/uo/issues/4287
https://github.com/iveviseti/uo/issues/4286
https://github.com/iveviseti/uo/issues/4285
https://github.com/iveviseti/uo/issues/4284
https://github.com/iveviseti/uo/issues/4283
https://github.com/iveviseti/uo/issues/4282
https://github.com/iveviseti/uo/issues/4281
https://github.com/iveviseti/uo/issues/4280
https://github.com/iveviseti/uo/issues/4279
https://github.com/iveviseti/uo/issues/4278
https://github.com/iveviseti/uo/issues/4277
https://github.com/iveviseti/uo/issues/4276
https://github.com/iveviseti/uo/issues/4275
https://github.com/iveviseti/uo/issues/4274
https://github.com/iveviseti/uo/issues/4273
https://github.com/iveviseti/uo/issues/4272
https://github.com/iveviseti/uo/issues/4271
https://github.com/iveviseti/uo/issues/4270
https://github.com/iveviseti/uo/issues/4269
https://github.com/iveviseti/uo/issues/4268
https://github.com/iveviseti/uo/issues/4267
https://github.com/iveviseti/uo/issues/4266
https://github.com/iveviseti/uo/issues/4265
https://github.com/iveviseti/uo/issues/4264
https://github.com/iveviseti/uo/issues/4263
https://github.com/ihuqapo/u/issues/872
https://github.com/ihuqapo/u/issues/871
https://github.com/ihuqapo/u/issues/870
https://github.com/ihuqapo/u/issues/869
https://github.com/ihuqapo/u/issues/868
https://github.com/ihuqapo/u/issues/867
https://github.com/ihuqapo/u/issues/866
https://github.com/ihuqapo/u/issues/865
https://github.com/ihuqapo/u/issues/864
https://github.com/ihuqapo/u/issues/863
https://github.com/ihuqapo/u/issues/862
https://github.com/ihuqapo/u/issues/861
https://github.com/ihuqapo/u/issues/860
https://github.com/ihuqapo/u/issues/858
https://github.com/ihuqapo/u/issues/857
https://github.com/ihuqapo/u/issues/856
https://github.com/ihuqapo/u/issues/855
https://github.com/ihuqapo/u/issues/854
https://github.com/ihuqapo/u/issues/853
https://github.com/ihuqapo/u/issues/852
https://github.com/ihuqapo/u/issues/851
https://github.com/ihuqapo/u/issues/850
https://github.com/ihuqapo/u/issues/849
https://github.com/ihuqapo/u/issues/848
https://github.com/ihuqapo/u/issues/847
https://github.com/ihuqapo/u/issues/846
https://github.com/ihuqapo/u/issues/845
https://github.com/ihuqapo/u/issues/844
https://github.com/ihuqapo/u/issues/843
https://github.com/ihuqapo/u/issues/842
https://github.com/ihuqapo/u/issues/841
https://github.com/ihuqapo/u/issues/840
https://github.com/ihuqapo/u/issues/839
https://github.com/ihuqapo/u/issues/838
https://github.com/ihuqapo/u/issues/837
https://github.com/ihuqapo/u/issues/836
https://github.com/ihuqapo/u/issues/835
https://github.com/ihuqapo/u/issues/834
https://github.com/ihuqapo/u/issues/833
https://github.com/ihuqapo/u/issues/832
https://github.com/ihuqapo/u/issues/831
https://github.com/ihuqapo/u/issues/830
https://github.com/ihuqapo/u/issues/829
https://github.com/ihuqapo/u/issues/828
https://github.com/ihuqapo/u/issues/827
https://github.com/ihuqapo/u/issues/826
https://github.com/ihuqapo/u/issues/825
https://github.com/ihuqapo/u/issues/824
https://github.com/ihuqapo/u/issues/823
https://github.com/ihuqapo/u/issues/822
https://github.com/ihuqapo/u/issues/821
https://github.com/ihuqapo/u/issues/820
https://github.com/ihuqapo/u/issues/819
https://github.com/ihuqapo/u/issues/818
https://github.com/ihuqapo/u/issues/817
https://github.com/ihuqapo/u/issues/816
https://github.com/ihuqapo/u/issues/815
https://github.com/ihuqapo/u/issues/814
https://github.com/ihuqapo/u/issues/813
https://github.com/ihuqapo/u/issues/812
https://github.com/ihuqapo/u/issues/811
https://github.com/ihuqapo/u/issues/810
https://github.com/ihuqapo/u/issues/809
https://github.com/ihuqapo/u/issues/808
https://github.com/ihuqapo/u/issues/807
https://github.com/ihuqapo/u/issues/806
https://github.com/ihuqapo/u/issues/805
https://github.com/ihuqapo/u/issues/804
https://github.com/ihuqapo/u/issues/803
https://github.com/ihuqapo/u/issues/802
https://github.com/ihuqapo/u/issues/801
https://github.com/ihuqapo/u/issues/800
https://github.com/ihuqapo/u/issues/799
https://github.com/ihuqapo/u/issues/798
https://github.com/ihuqapo/u/issues/797
https://github.com/ihuqapo/u/issues/796
https://github.com/ihuqapo/u/issues/795
https://github.com/ihuqapo/u/issues/794
https://github.com/ihuqapo/u/issues/793
https://github.com/ihuqapo/u/issues/792
https://github.com/ihuqapo/u/issues/791
https://github.com/ihuqapo/u/issues/790
https://github.com/ihuqapo/u/issues/789
https://github.com/ihuqapo/u/issues/788
https://github.com/ihuqapo/u/issues/787
https://github.com/ihuqapo/u/issues/786
https://github.com/ihuqapo/u/issues/785
https://github.com/ihuqapo/u/issues/784
https://github.com/ihuqapo/u/issues/783
https://github.com/ihuqapo/u/issues/782
https://github.com/ihuqapo/u/issues/781
https://github.com/ihuqapo/u/issues/780
https://github.com/ihuqapo/u/issues/779
https://github.com/ihuqapo/u/issues/778
https://github.com/ihuqapo/u/issues/777
https://github.com/ihuqapo/u/issues/776
https://github.com/ihuqapo/u/issues/775
https://github.com/ihuqapo/u/issues/774
https://github.com/ihuqapo/u/issues/773
https://github.com/ihuqapo/u/issues/772
https://github.com/ihuqapo/u/issues/771
https://github.com/ihuqapo/u/issues/770
https://github.com/ihuqapo/u/issues/769
https://github.com/ihuqapo/u/issues/768
https://github.com/ihuqapo/u/issues/767
from daggr import FnNode
import gradio as gr
def summarize(text: str, max_words: int = 100) -> str:
words = text.split()[:max_words]
return " ".join(words) + "..."
summarizer = FnNode(
fn=summarize,
inputs={
"text": gr.Textbox(label="Text to Summarize", lines=5),
"max_words": gr.Slider(minimum=10, maximum=500, value=100),
},
outputs={
"summary": gr.Textbox(label="Summary"),
},
)
Daggr 会自动检查函数签名,按名称匹配输入参数,按顺序将返回值映射到输出端口。
值得注意的是,FnNode 默认采用串行执行模式。这是一个经过权衡的设计决策:本地 Python 代码可能涉及文件操作、GPU 资源、全局状态,以及各种非线程安全的库。Daggr 选择了更保守的默认行为。
更多推荐

所有评论(0)