labull-framework 3.0.5__tar.gz → 3.0.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {labull_framework-3.0.5/labull_framework.egg-info → labull_framework-3.0.7}/PKG-INFO +1 -1
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/types/workflow.py +31 -15
- {labull_framework-3.0.5 → labull_framework-3.0.7/labull_framework.egg-info}/PKG-INFO +1 -1
- {labull_framework-3.0.5 → labull_framework-3.0.7}/pyproject.toml +1 -1
- {labull_framework-3.0.5 → labull_framework-3.0.7}/LICENSE +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/MANIFEST.in +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/README-pypi.md +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/__init__.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/access.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/admin.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/apps.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/auth/__init__.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/auth/backend.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/auth/bootstrap.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/auth/sso.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/auth/views.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/canvas/__init__.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/canvas/data.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/canvas/gitinfo.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/canvas/shape_ast.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/canvas/static/canvas.css +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/canvas/static/canvas.js +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/canvas/static/page.html +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/canvas/views.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/checks.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/env.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/flow.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/jsonio.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/__init__.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/blockcheck.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/blockpackage.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/blocktypes.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/deepcheck.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/devkit.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/dispatch.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/export.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/health.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/manifest.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/parallel.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/registry.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/requires.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/sdk.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/service.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/subproc.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/types/__init__.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/types/plain.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/validate.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/views.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/management/__init__.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/management/commands/__init__.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/management/commands/labull_access.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/management/commands/labull_blocktype.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/management/commands/labull_contract.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/management/commands/labull_requires.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/migrations/0001_initial.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/migrations/0002_remove_magicblock_prev_files_and_more.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/migrations/0003_magicblock_tags.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/migrations/0004_magicblock_detail.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/migrations/0005_labullrole.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/migrations/0006_default_groups_permissions.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/migrations/0007_no_builtin_permissions.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/migrations/__init__.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/models.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/permissions.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/settings.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/urls.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/virtual.py +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework.egg-info/SOURCES.txt +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework.egg-info/dependency_links.txt +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework.egg-info/requires.txt +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework.egg-info/top_level.txt +0 -0
- {labull_framework-3.0.5 → labull_framework-3.0.7}/setup.cfg +0 -0
{labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/types/workflow.py
RENAMED
|
@@ -252,7 +252,11 @@ def cross(items: list[tuple[str, dict[str, Any]]]) -> list[tuple[str, str]]:
|
|
|
252
252
|
|
|
253
253
|
:param items: `[(块标签, 归一化快照)]`,**全部副本**(至少两个才会被调)。
|
|
254
254
|
|
|
255
|
-
🔴
|
|
255
|
+
🔴 **先按 `flow_type` 分组,每组各选一个权威**:块类型(`workflow`)回答的是"哪一类块",
|
|
256
|
+
而"同一条流程的副本"是按 `flow_type` 认的。**不分组的话**,报销单 / 付款单 / 定价单 /
|
|
257
|
+
调整单会被互相当成"权威副本" ⇒ 每升一次框架,那几个不相干的块就被整块停用
|
|
258
|
+
(3.0.5 的事故:`报销单流程` 被说成"与权威副本 `差旅申请单流程` 说法不一致")。
|
|
259
|
+
🔴 组内第一个是**权威**(按块标签排序,所以"谁是权威"与加载顺序无关)。
|
|
256
260
|
🔴 比的是流程骨架:状态码 / 动作码 / `to` / `kind` / `candidates` / 必填意见 / 解绑 /
|
|
257
261
|
`confirm_permissions` / 中文名 / `ui` / `ui_by` / `moves_by` / `assignees` / `legacy` / `form` / `editable`,
|
|
258
262
|
以及 `handler_kind`。**不比**注释、docstring、钩子对象,也不比**项目的**
|
|
@@ -260,23 +264,35 @@ def cross(items: list[tuple[str, dict[str, Any]]]) -> list[tuple[str, str]]:
|
|
|
260
264
|
🔴 报错要逐条列出差异(哪个块、哪个字段、各自的值)并给两种改法:改一致,或者**统一成一份**
|
|
261
265
|
(派生机制刻意不做:那一份差异一旦允许"显式声明",就又多了一处要说两遍的事实)。
|
|
262
266
|
"""
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
+
# ── 分组:键是 `flow_type`(快照里那个 `type`),不是块类型 ──
|
|
268
|
+
# ⚠️ 取不到 `type` 的条目**不参与**:那种块的 `spec()` 本来就该在构造期就抛,
|
|
269
|
+
# 走到这里说明它的快照不完整 —— 猜一个组名去比只会制造假差异。
|
|
270
|
+
groups: dict[str, list[tuple[str, dict[str, Any]]]] = {}
|
|
271
|
+
for label, spec in items or ():
|
|
272
|
+
flow_type = str((spec or {}).get('type') or '').strip()
|
|
273
|
+
if not flow_type:
|
|
274
|
+
continue
|
|
275
|
+
groups.setdefault(flow_type, []).append((label, spec))
|
|
267
276
|
out: list[tuple[str, str]] = []
|
|
268
|
-
for
|
|
269
|
-
|
|
270
|
-
|
|
277
|
+
for flow_type in sorted(groups):
|
|
278
|
+
group = groups[flow_type]
|
|
279
|
+
# 只有一份副本 ⇒ 没有"跨块"可比(单份流程自己的判据在构造期就判完了)。
|
|
280
|
+
if len(group) < 2:
|
|
271
281
|
continue
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
282
|
+
ordered = sorted(group, key=lambda item: str(item[0]))
|
|
283
|
+
authority_label, authority = ordered[0]
|
|
284
|
+
for label, spec in ordered[1:]:
|
|
285
|
+
diffs = _diff(spec, authority)
|
|
286
|
+
if not diffs:
|
|
287
|
+
continue
|
|
288
|
+
out.append(
|
|
289
|
+
(
|
|
290
|
+
label,
|
|
291
|
+
f'块「{label}」里的流程 {spec.get("type")} 与权威副本「{authority_label}」说法不一致:'
|
|
292
|
+
f'{";".join(diffs)}。改法:把两边改成同一个说法(同一套流程只有一种写法),'
|
|
293
|
+
f'或者让其中一边删掉复制的那份流程声明。',
|
|
294
|
+
)
|
|
278
295
|
)
|
|
279
|
-
)
|
|
280
296
|
return out
|
|
281
297
|
|
|
282
298
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "labull-framework"
|
|
7
|
-
version = "3.0.
|
|
7
|
+
version = "3.0.7"
|
|
8
8
|
description = "Labull Framework: a pluggable Django app with Authing OIDC login and magic blocks"
|
|
9
9
|
readme = "README-pypi.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/blockcheck.py
RENAMED
|
File without changes
|
{labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/blockpackage.py
RENAMED
|
File without changes
|
{labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/blocktypes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/types/__init__.py
RENAMED
|
File without changes
|
{labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/magic_block/types/plain.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/management/commands/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/migrations/0001_initial.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework/migrations/0005_labullrole.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{labull_framework-3.0.5 → labull_framework-3.0.7}/labull_framework.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|