Skip to content
This repository was archived by the owner on Jul 29, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions backend/examples/boundary_quickstart.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=13:6 imports_exports=3:1 calls_definitions=5:1
"""Copy-pasteable edcmbone-backend smoke demo.

Usage:
Expand Down Expand Up @@ -26,3 +27,4 @@ def main() -> None:

if __name__ == "__main__":
main()
# ratios: loc_comments=13:6 imports_exports=3:1 calls_definitions=5:1
2 changes: 2 additions & 0 deletions backend/src/edcmbone_backend/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=71:95 imports_exports=1:7 calls_definitions=17:14
"""MSDMD-compliant UCNS-only backend.

The backend models the smallest useful EDCM boundary surface:
Expand Down Expand Up @@ -199,3 +200,4 @@ def serialize_boundary(boundary):
"merge_boundaries",
"serialize_boundary",
]
# ratios: loc_comments=71:95 imports_exports=1:7 calls_definitions=17:14
2 changes: 2 additions & 0 deletions backend/src/ucns/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=118:50 imports_exports=5:6 calls_definitions=40:14
"""
ucns_v04 — UCNS Engine (turn-fraction angle convention)
========================================================
Expand Down Expand Up @@ -204,3 +205,4 @@ def multiply(A: UCNSObject, B: UCNSObject) -> UCNSObject:
anchors_pos=tuple(new_anchors),
faces_pos=tuple(new_faces),
)
# ratios: loc_comments=118:50 imports_exports=5:6 calls_definitions=40:14
2 changes: 2 additions & 0 deletions backend/src/ucns/ucns_v04.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=118:50 imports_exports=5:6 calls_definitions=40:14
"""
ucns_v04 — UCNS Engine (turn-fraction angle convention)
========================================================
Expand Down Expand Up @@ -204,3 +205,4 @@ def multiply(A: UCNSObject, B: UCNSObject) -> UCNSObject:
anchors_pos=tuple(new_anchors),
faces_pos=tuple(new_faces),
)
# ratios: loc_comments=118:50 imports_exports=5:6 calls_definitions=40:14
2 changes: 2 additions & 0 deletions closed_tokens.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=348:129 imports_exports=6:3 calls_definitions=69:8
"""
edcmbone — Closed-Token UCNS Encoder

Expand Down Expand Up @@ -557,3 +558,4 @@ def feature_payload_of(obj: UCNSObject) -> Optional[UCNSObject]:
if len(obj.anchors_pos) != 2:
return None
return obj.anchors_pos[1].payload
# ratios: loc_comments=348:129 imports_exports=6:3 calls_definitions=69:8
2 changes: 2 additions & 0 deletions core/behavioral/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# ratios: loc_comments=0:1 imports_exports=0:0 calls_definitions=0:0
# core/behavioral/__init__.py
# ratios: loc_comments=0:1 imports_exports=0:0 calls_definitions=0:0
2 changes: 2 additions & 0 deletions core/behavioral/behavioral_metrics.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=271:32 imports_exports=7:4 calls_definitions=88:7
# core/behavioral/behavioral_metrics.py
# hmmm: implements behavioral_formulas_v1.md deterministically.

Expand Down Expand Up @@ -339,3 +340,4 @@ def _get_weight(metric: str, key: str, default: float) -> float:
}

return out, feature_vec, Iwin
# ratios: loc_comments=271:32 imports_exports=7:4 calls_definitions=88:7
2 changes: 2 additions & 0 deletions core/behavioral/behavioral_window.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=33:2 imports_exports=3:1 calls_definitions=6:1
# core/behavioral/behavioral_window.py
# hmmm: rolling windows over CLOSED rounds only by default.

Expand Down Expand Up @@ -40,3 +41,4 @@ def compute_behavioral_windows(
outputs.append(out)

return outputs
# ratios: loc_comments=33:2 imports_exports=3:1 calls_definitions=6:1
2 changes: 2 additions & 0 deletions core/behavioral/marker_matcher.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=54:9 imports_exports=4:2 calls_definitions=12:3
# core/behavioral/marker_matcher.py
# hmmm: longest-phrase-first matching, non-overlapping per text.

Expand Down Expand Up @@ -68,3 +69,4 @@ def match_phrases_in_turn_tokens(
end_token=i+L-1
))
return hits
# ratios: loc_comments=54:9 imports_exports=4:2 calls_definitions=12:3
2 changes: 2 additions & 0 deletions core/behavioral/structural_proxies.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=47:5 imports_exports=3:5 calls_definitions=15:5
# core/behavioral/structural_proxies.py
# hmmm: behavioral v1 uses structural proxies as frozen in formulas.

Expand Down Expand Up @@ -58,3 +59,4 @@ def detect_list_growth_pattern(user_turn: Dict[str, Any], assistant_turn: Dict[s
a = assistant_turn.get("raw_text", "").splitlines()
count = sum(1 for line in a if line.strip().startswith(("1)", "2)", "3)", "4)", "5)", "6)", "-", "*")))
return 1 if count >= 6 else 0
# ratios: loc_comments=47:5 imports_exports=3:5 calls_definitions=15:5
2 changes: 2 additions & 0 deletions core/behavioral/ucns_marker_store.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=70:19 imports_exports=4:2 calls_definitions=19:2
# core/behavioral/ucns_marker_store.py
# Phase 1: UCNSStore-backed marker lookup for algebraic comparison with phrase matching.

Expand Down Expand Up @@ -107,3 +108,4 @@ def ucns_hits_for_turn(store: Any, tokens: List[str]) -> Dict[str, int]:
counts[key] = counts.get(key, 0) + 1

return counts
# ratios: loc_comments=70:19 imports_exports=4:2 calls_definitions=19:2
2 changes: 2 additions & 0 deletions core/bridge/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# ratios: loc_comments=0:1 imports_exports=0:0 calls_definitions=0:0
# core/bridge/__init__.py
# ratios: loc_comments=0:1 imports_exports=0:0 calls_definitions=0:0
2 changes: 2 additions & 0 deletions core/bridge/bridge_engine.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=181:24 imports_exports=4:1 calls_definitions=35:4
# core/bridge/bridge_engine.py
# hmmm: observational only. Correlations + divergence flags.

Expand Down Expand Up @@ -235,3 +236,4 @@ def _op_vec(o: Dict[str, Any]) -> List[float]:
})

return outs
# ratios: loc_comments=181:24 imports_exports=4:1 calls_definitions=35:4
2 changes: 2 additions & 0 deletions core/bridge/math_utils.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=17:1 imports_exports=3:2 calls_definitions=9:2
# core/bridge/math_utils.py
from __future__ import annotations

Expand All @@ -19,3 +20,4 @@ def pearson(x: List[float], y: List[float]) -> float:
if denx == 0 or deny == 0:
return 0.0
return max(-1.0, min(1.0, num/(denx*deny)))
# ratios: loc_comments=17:1 imports_exports=3:2 calls_definitions=9:2
2 changes: 2 additions & 0 deletions core/operator/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# ratios: loc_comments=0:1 imports_exports=0:0 calls_definitions=0:0
# core/operator/__init__.py
# ratios: loc_comments=0:1 imports_exports=0:0 calls_definitions=0:0
2 changes: 2 additions & 0 deletions core/operator/inventories.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=47:15 imports_exports=2:2 calls_definitions=27:2
# core/operator/inventories.py
# hmmm: flexible loader; supports canon_eng bones/affixes JSON shapes.

Expand Down Expand Up @@ -75,3 +76,4 @@ def load_affixes(affixes_inv: Dict[str, Any]) -> Tuple[Dict[str, str], Dict[str,
suf[ks[4:]] = v

return pref, suf
# ratios: loc_comments=47:15 imports_exports=2:2 calls_definitions=27:2
2 changes: 2 additions & 0 deletions core/operator/matcher.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=68:25 imports_exports=3:6 calls_definitions=16:6
# core/operator/matcher.py
# hmmm: whole-word precedence; affix stripping only if no whole-word bone match.

Expand Down Expand Up @@ -105,3 +106,4 @@ def match_affixes(tok: str, prefix_map: Dict[str, str], suffix_map: Dict[str, st
return [], t

return fams, root
# ratios: loc_comments=68:25 imports_exports=3:6 calls_definitions=16:6
2 changes: 2 additions & 0 deletions core/operator/operator_extractor.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=165:13 imports_exports=4:3 calls_definitions=31:7
# core/operator/operator_extractor.py
# hmmm: computes operator outputs over rolling k-turn windows.

Expand Down Expand Up @@ -199,3 +200,4 @@ def compute_operator_windows(
outputs.append(out)

return outputs
# ratios: loc_comments=165:13 imports_exports=4:3 calls_definitions=31:7
2 changes: 2 additions & 0 deletions core/parsing/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# ratios: loc_comments=0:1 imports_exports=0:0 calls_definitions=0:0
# core/parsing/__init__.py
# ratios: loc_comments=0:1 imports_exports=0:0 calls_definitions=0:0
2 changes: 2 additions & 0 deletions core/parsing/normalizer.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=9:3 imports_exports=1:1 calls_definitions=4:1
# core/parsing/normalizer.py
# hmmm: normalization for matching; raw_text remains lossless elsewhere.

Expand All @@ -12,3 +13,4 @@ def normalize_text_for_matching(s: str) -> str:
.replace("‛", "'") # single high-reversed-9 quotation mark -> ASCII apostrophe
.lower()
)
# ratios: loc_comments=9:3 imports_exports=1:1 calls_definitions=4:1
2 changes: 2 additions & 0 deletions core/parsing/parsing_pipeline.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=12:2 imports_exports=4:1 calls_definitions=2:1
# core/parsing/parsing_pipeline.py
# hmmm: orchestrates utterances -> turns -> rounds (no IO).

Expand All @@ -15,3 +16,4 @@ def parse_utterances_to_turns_rounds(
turns = build_turns_from_utterances(raw_utterances)
rounds = build_rounds_from_turns(turns, exclude_sys_tool_from_rounds=exclude_sys_tool_from_rounds)
return turns, rounds
# ratios: loc_comments=12:2 imports_exports=4:1 calls_definitions=2:1
2 changes: 2 additions & 0 deletions core/parsing/round_builder.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=60:6 imports_exports=2:1 calls_definitions=9:2
# core/parsing/round_builder.py
# hmmm: initiator-return round closure, SYS/TOOL exclusion by default.

Expand Down Expand Up @@ -75,3 +76,4 @@ def build_rounds_from_turns(
})

return rounds
# ratios: loc_comments=60:6 imports_exports=2:1 calls_definitions=9:2
2 changes: 2 additions & 0 deletions core/parsing/tokenizer.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=11:29 imports_exports=3:1 calls_definitions=9:1
# core/parsing/tokenizer.py
# hmmm: must satisfy tokenization invariants from spec appendix:
# - preserve punctuation as separate tokens
Expand Down Expand Up @@ -42,3 +43,4 @@ def tokens_surface(text: str) -> List[str]:
if not toks:
toks = text.split()
return toks
# ratios: loc_comments=11:29 imports_exports=3:1 calls_definitions=9:1
2 changes: 2 additions & 0 deletions core/parsing/turn_builder.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=70:8 imports_exports=3:1 calls_definitions=15:3
# core/parsing/turn_builder.py
# hmmm: turn merge doctrine + forced boundary markers.

Expand Down Expand Up @@ -93,3 +94,4 @@ def new_turn(turn_id: str, actor_id: str) -> Dict[str, Any]:
t["tokens_surface"] = tokens_surface(t["raw_text"])

return turns
# ratios: loc_comments=70:8 imports_exports=3:1 calls_definitions=15:3
2 changes: 2 additions & 0 deletions core/windowing/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# ratios: loc_comments=0:1 imports_exports=0:0 calls_definitions=0:0
# core/windowing/__init__.py
# ratios: loc_comments=0:1 imports_exports=0:0 calls_definitions=0:0
2 changes: 2 additions & 0 deletions edcmbone/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# ratios: loc_comments=2:1 imports_exports=1:1 calls_definitions=0:0
"""Top-level package for EDCMBone."""

from version import __version__

__all__ = ["__version__"]
# ratios: loc_comments=2:1 imports_exports=1:1 calls_definitions=0:0
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# ratios: loc_comments=2:1 imports_exports=1:1 calls_definitions=0:0
"""Canonical edcmbone package namespace."""

from version import __version__

__all__ = ["__version__"]
# ratios: loc_comments=2:1 imports_exports=1:1 calls_definitions=0:0
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/behavioral/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# ratios: loc_comments=2:0 imports_exports=1:1 calls_definitions=0:0
from .snapshot.metrics import score_window, BehavioralSnapshot

__all__ = ["score_window", "BehavioralSnapshot"]
# ratios: loc_comments=2:0 imports_exports=1:1 calls_definitions=0:0
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/behavioral/snapshot/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# ratios: loc_comments=3:0 imports_exports=2:1 calls_definitions=0:0
from .metrics import score_window, BehavioralSnapshot
from .markers import score_turn

__all__ = ["score_window", "score_turn", "BehavioralSnapshot"]
# ratios: loc_comments=3:0 imports_exports=2:1 calls_definitions=0:0
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/behavioral/snapshot/markers.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=159:37 imports_exports=2:2 calls_definitions=46:5
"""
Behavioral snapshot marker engine.
Implements behavioral_markers_v1.json (frozen v1.0.0) pattern matching.
Expand Down Expand Up @@ -229,3 +230,4 @@ def score_turn(text: str) -> TurnScores:
I_ack=float(I_ack),
I_tier_b=I_tb,
)
# ratios: loc_comments=159:37 imports_exports=2:2 calls_definitions=46:5
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/behavioral/snapshot/metrics.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=73:42 imports_exports=3:2 calls_definitions=38:6
"""
Behavioral snapshot 9D vector.
Aggregates TurnScores over a round window (W_round m=4) into BehavioralSnapshot.
Expand Down Expand Up @@ -137,3 +138,4 @@ def _sum(field: str) -> float:
I = _clamp((1.0 - ack_ratio) * 0.7 + I_tb / (n * 2.0) * 0.3)

return BehavioralSnapshot(C=C, R=R, D=D, N=N, L=L, O=O, F=F, E=E, I=I)
# ratios: loc_comments=73:42 imports_exports=3:2 calls_definitions=38:6
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/bridge/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# ratios: loc_comments=3:0 imports_exports=2:1 calls_definitions=0:0
from .correlate import correlate, BridgeCorrelations
from .divergence import flag_divergence, DivergenceFlags

__all__ = ["correlate", "BridgeCorrelations", "flag_divergence", "DivergenceFlags"]
# ratios: loc_comments=3:0 imports_exports=2:1 calls_definitions=0:0
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/bridge/correlate.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=43:17 imports_exports=5:2 calls_definitions=14:6
"""
Bridge-layer cross-layer correlations (ternary: O↔B, O↔C, B↔C).
Bridge is read-only — never modifies any layer. (Canon v1 rule, carried forward.)
Expand Down Expand Up @@ -72,3 +73,4 @@ def correlate(
OC=_pearson(ops, cons),
BC=_pearson(behs, cons),
)
# ratios: loc_comments=43:17 imports_exports=5:2 calls_definitions=14:6
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/bridge/divergence.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=17:12 imports_exports=3:2 calls_definitions=4:2
"""
Bridge-layer divergence flags.
Threshold-based: correlation < threshold ⇒ layer pair flagged as divergent.
Expand Down Expand Up @@ -33,3 +34,4 @@ def flag_divergence(
OC_divergent=abs(correlations.OC) < threshold,
BC_divergent=abs(correlations.BC) < threshold,
)
# ratios: loc_comments=17:12 imports_exports=3:2 calls_definitions=4:2
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/content/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=10:0 imports_exports=4:1 calls_definitions=0:0
from .vector import ContentVector, null_vector, average_ratings
from .status import StatusFlags, TruthStatus, VerificationStatus, FoundationStatus, SpeechAct
from .rating import ContentRatings
Expand All @@ -9,3 +10,4 @@
"ContentRatings",
"ContentWindow", "aggregate_window",
]
# ratios: loc_comments=10:0 imports_exports=4:1 calls_definitions=0:0
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/content/rating.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=9:6 imports_exports=2:1 calls_definitions=0:1
"""
Content-layer scalar ratings (6 per claim, each in [0, 1]).
Reference frame: receiver-relative, conversation-scoped (provisional default per §3.2).
Expand All @@ -15,3 +16,4 @@ class ContentRatings(NamedTuple):
aesthetic: float # form quality (0 = poor, 1 = excellent)
psychological: float # appropriateness for the receiver
epistemic: float # knowledge-quality: warranted, well-grounded, hedged
# ratios: loc_comments=9:6 imports_exports=2:1 calls_definitions=0:1
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/content/status.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=27:5 imports_exports=3:5 calls_definitions=0:5
"""
Content-layer status flag types (4 categorical per claim).
Source: canon_eng/canon_v2_proposal.md §1.5, frozen pending v2 freeze.
Expand Down Expand Up @@ -40,3 +41,4 @@ class StatusFlags(NamedTuple):
verification_status: VerificationStatus
foundation_status: FoundationStatus
speech_act: SpeechAct
# ratios: loc_comments=27:5 imports_exports=3:5 calls_definitions=0:5
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/content/vector.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=36:11 imports_exports=4:3 calls_definitions=12:3
"""
10D content vector: StatusFlags (4 categorical) + ContentRatings (6 scalar).
UCNS recursion depth: 3 (content = depth-3 in the layer–depth unification).
Expand Down Expand Up @@ -52,3 +53,4 @@ def average_ratings(vectors: list[ContentVector]) -> ContentRatings:
psychological=sum(v.ratings.psychological for v in vectors) / n,
epistemic=sum(v.ratings.epistemic for v in vectors) / n,
)
# ratios: loc_comments=36:11 imports_exports=4:3 calls_definitions=12:3
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/content/window.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=28:6 imports_exports=5:2 calls_definitions=10:3
"""
Content-layer window aggregation.
Aggregates ContentVectors from multiple claims over a turn/round window.
Expand Down Expand Up @@ -38,3 +39,4 @@ def _dist(enum_cls, attr: str) -> dict:
foundation_distribution=_dist(FoundationStatus, "foundation_status"),
speech_act_distribution=_dist(SpeechAct, "speech_act"),
)
# ratios: loc_comments=28:6 imports_exports=5:2 calls_definitions=10:3
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/operator/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=11:18 imports_exports=3:1 calls_definitions=0:0
# === MODULE_BUILD ===
# id: operator_public_surface
# module_name: operator package exports
Expand Down Expand Up @@ -28,3 +29,4 @@
"aggregate",
"OperatorVector",
]
# ratios: loc_comments=11:18 imports_exports=3:1 calls_definitions=0:0
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/operator/aggregate.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=22:24 imports_exports=2:2 calls_definitions=8:2
# === MODULE_BUILD ===
# id: operator_vector_aggregate
# module_name: operator aggregate
Expand Down Expand Up @@ -49,3 +50,4 @@ def aggregate(counts: dict[str, int]) -> OperatorVector:
S=counts.get("S", 0) / total,
total=total,
)
# ratios: loc_comments=22:24 imports_exports=2:2 calls_definitions=8:2
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/operator/count.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=20:29 imports_exports=2:2 calls_definitions=2:2
# === MODULE_BUILD ===
# id: operator_family_count
# module_name: operator family count
Expand Down Expand Up @@ -54,3 +55,4 @@ def count_window(
for f in FAMILIES:
window[f] += tc.get(f, 0)
return window
# ratios: loc_comments=20:29 imports_exports=2:2 calls_definitions=2:2
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/operator/tokenize.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=115:44 imports_exports=2:1 calls_definitions=25:3
# === MODULE_BUILD ===
# id: operator_tokenization
# module_name: operator tokenizer
Expand Down Expand Up @@ -184,3 +185,4 @@ def tokenize_turn(text: str) -> list[tuple[str, Optional[str]]]:
out.extend([("?", "Q")] * trailing_q)

return out
# ratios: loc_comments=115:44 imports_exports=2:1 calls_definitions=25:3
2 changes: 2 additions & 0 deletions edcmbone/edcmbone/protocols/bone_embd_v1_1_0alpha.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# ratios: loc_comments=26:37 imports_exports=1:4 calls_definitions=2:8
from typing import Protocol, Sequence, Tuple, NamedTuple


Expand Down Expand Up @@ -79,3 +80,4 @@ def canon_version(self) -> str:
v1.1-compliant implementations return BONE_CANON_VERSION.
"""
...
# ratios: loc_comments=26:37 imports_exports=1:4 calls_definitions=2:8
Loading
Loading